CheckOps
Jasmine
Jasmine is a long-established, MIT-licensed behaviour-driven JavaScript testing framework for browsers and Node.js, with built-in assertions, spies and asynchronous support and no required dependencies.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Jasmine is a behaviour-driven development framework for testing JavaScript code, describing itself as simple testing for browsers and Node.js. It has been one of the foundational JavaScript test frameworks for more than a decade and was long the default test framework in Angular CLI projects (with the Karma runner), so it remains common in many existing suites.
Unlike Mocha, Jasmine ships everything in one package: describe/it blocks, a rich set of matchers through expect, spies for stubbing and tracking calls, clock mocking with jasmine.clock(), and async support for promises and async functions. Tests run in Node.js with the jasmine package or in browsers through jasmine-browser-runner. The latest major release, v7.0.1, was published on 15 August 2026.
The source code is at jasmine/jasmine on GitHub under the MIT licence, with about 15,800 stars; the most recent commit was on 7 November 2026.
Features
- All-in-one: Runner, assertions, spies and clock mocking in one package.
- Node and browser:
jasminefor Node.js andjasmine-browser-runnerfor real browsers. - Custom matchers: Extend
expectwith domain-specific matchers. - Random order: Specs run in random order by default to expose hidden dependencies.
Pros
- Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 7 November 2026.
- Community: About 15,800 GitHub stars.
Cons
- Fewer modern conveniences: No built-in snapshot testing or module mocking like Jest or Vitest.
- Smaller plugin ecosystem: Less community activity than Jest or Vitest today.
Usage and Links (Example)
npm install --save-dev jasmine
npx jasmine init
describe("cart", () => {
it("totals items", () => {
const cart = new Cart([{ price: 5 }, { price: 7 }]);
expect(cart.total()).toBe(12);
});
it("logs checkout", () => {
const logger = jasmine.createSpyObj("logger", ["info"]);
new Cart([], logger).checkout();
expect(logger.info).toHaveBeenCalledWith("checkout");
});
});
npx jasmine
Resources:
Pricing
Jasmine is free and open source under the MIT licence.
Recommended for?
- Teams maintaining existing Jasmine or Angular suites.
- Projects wanting a dependency-free, all-in-one framework for Node.js and browsers.
Conclusion
Jasmine remains a dependable, self-contained BDD framework; new projects often pick Vitest or Jest, but Jasmine is still a solid, actively maintained choice.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Jasmine side by side.
JJestJest is a free, open-source JavaScript test runner with zero-config defaults, mocks, and snapshot testing.Compare with Jasmine
MMochaMocha is a long-running, MIT-licensed JavaScript test framework for Node.js and browsers, with BDD and TDD interfaces, async support, hooks, parallel mode and a large reporter ecosystem.Compare with Jasmine
VVitestVitest is a free, open-source unit test runner that reuses a Vite project's config, transforms, and plugins.Compare with Jasmine
AAVAAVA is an MIT-licensed Node.js test runner that runs test files concurrently in separate worker processes, with a minimal API, clean output, built-in assertions and snapshot support.Compare with Jasmine
NNode.js Test Runner (node:test)The Node.js test runner is the built-in `node:test` module, stable since Node.js 20, providing describe/it tests, mocking, snapshots, coverage and reporters with no extra dependencies.Compare with Jasmine
CChaiChai is an MIT-licensed BDD/TDD assertion library for Node.js and browsers, offering expect, should and assert styles and a large plugin ecosystem, pairing with any test framework.Compare with Jasmine