jasmine-core

v6.1.0 MIT

Simple JavaScript testing framework for browsers and node.js

Weekly Downloads
4.3M
Stars
15.8K
Forks
2.2K
Open Issues
11
Gzip Size
33.7 kB
Unpacked Size
458.7 kB
Dependencies
1
Last Updated
1mo ago

jasmine-core Download Trends

Download trends for jasmine-core06.6M13.3M19.9M26.5MFeb 2025MayAugNovFebApr 2026
jasmine-core

About jasmine-core

Jasmine Core provides a Behavior-Driven Development (BDD) framework designed for testing JavaScript code across various environments, including browsers and Node.js. It aims to simplify the process of writing and running tests by offering a clear syntax and a self-contained testing experience, reducing the need for external dependencies to get started.

The core philosophy of Jasmine is to offer a zero-dependency, expressive, and maintainable testing solution. It emphasizes writing tests that describe the expected behavior of code, making them easily understandable by developers, testers, and even non-technical stakeholders. This focus on readability and maintainability is a key design goal, targeting developers who prefer a structured approach to testing.

Jasmine's API centers around `describe` blocks to group related tests and `it` blocks to define individual test cases. Within these blocks, assertions are made using matchers like `expect(value).toBe(expected)` or `expect(value).toHaveBeenCalled()`. It also includes setup and teardown functions like `beforeEach`, `afterEach`, `beforeAll`, and `afterAll` for managing test context and state across suites and specs.

Jasmine Core is designed to integrate seamlessly into common JavaScript development workflows. It can be run directly in a browser environment or via a Node.js runtime. While it doesn't dictate a specific build tool, it's often used with bundlers like Webpack or Rollup, and task runners such as Gulp or Grunt. Its compatibility extends to various JavaScript frameworks, serving as a foundational testing layer.

With a modest unpacked size of 458.7 kB and a gzipped bundle size of 33.7 kB, Jasmine Core offers a reasonably compact testing solution. Its maturity, evidenced by its long history and consistent development, provides a stable and reliable testing foundation. The framework has seen widespread adoption, indicated by its 5.2 million weekly downloads, reflecting its popularity and robust community support.

When to use

  • When defining test suites using `describe` blocks for organizing related behaviors and `it` blocks for individual specifications.
  • When making assertions with a rich set of built-in matchers like `expect(actual).toEqual(expected)` or `expect(spy).toHaveBeenCalledWith(arguments)`.
  • When managing test setup and teardown logic across multiple tests using `beforeEach` and `afterEach` hooks.
  • When running tests directly in a browser environment without requiring additional server infrastructure for test execution.
  • When working within a Node.js project and needing a straightforward, zero-dependency testing framework.
  • When aiming for a clear, human-readable test format that aligns with Behavior-Driven Development principles.

When NOT to use

  • If you require integration with a specific end-to-end testing browser automation tool; Jasmine Core focuses on unit and integration testing.
  • If your project strictly mandates TypeScript type generation directly from tests; Jasmine Core primarily focuses on JavaScript execution.
  • When a testing framework with an opinionated mocking solution built-in is preferred; Jasmine provides spies but relies on separate tools for complex mocking scenarios.
  • If the primary goal is to test asynchronous operations without explicit promise handling or `async/await` syntax within `it` blocks; Jasmine Core supports these but other frameworks might offer more specialized patterns.
  • When seeking a minimal dependency footprint for very small scripts where a few simple assertion functions would suffice.

jasmine-core Alternatives

jasmine-core Categories