# jasmine/jasmine

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jasmine-jasmine).**

15,824 stars · 2,241 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/jasmine/jasmine
- Homepage: http://jasmine.github.io/
- awesome-repositories: https://awesome-repositories.com/repository/jasmine-jasmine.md

## Description

Jasmine is a JavaScript testing framework and test runner designed for behavior-driven development. It provides a comprehensive toolset for writing and executing descriptive test suites that verify code behavior in both web browsers and Node.js environments.

The framework is distinguished by its integrated mocking library, which allows for dependency isolation through spies and stubs, as well as the ability to simulate time and timing functions to test asynchronous logic synchronously. It also includes a mechanism to enforce test uniqueness, preventing duplicate names for tests and suites.

Its broader capabilities cover asynchronous code validation, cross-platform execution, and hierarchical test organization. The system includes programmable event-driven reporting, a pluggable matcher-based assertion system, and parallel test execution to reduce total runtime.

## Tags

### Testing & Quality Assurance

- [JavaScript Application Testing](https://awesome-repositories.com/f/testing-quality-assurance/javascript-application-testing.md) — Provides a comprehensive framework for verifying the behavior of JavaScript applications in browser and server environments.
- [Behavior-Driven Testing](https://awesome-repositories.com/f/testing-quality-assurance/testing-best-practices-methodologies/quality-assurance-practices/testing-methodologies/behavior-driven-testing.md) — Provides a full framework for executing behavior-driven test suites across browser and server environments. ([source](https://github.com/jasmine/jasmine#readme))
- [Assertion Matchers](https://awesome-repositories.com/f/testing-quality-assurance/assertion-matchers.md) — Uses a pluggable system of boolean matchers to verify that actual values meet expected criteria.
- [Asynchronous Logic Validation](https://awesome-repositories.com/f/testing-quality-assurance/asynchronous-logic-validation.md) — Testing JavaScript functions that use promises or callbacks to ensure operations complete correctly before assertions are made.
- [Asynchronous Test Execution](https://awesome-repositories.com/f/testing-quality-assurance/asynchronous-test-execution.md) — Handles asynchronous tests by awaiting promises or tracking callbacks before moving to the next specification.
- [Behavior Verification](https://awesome-repositories.com/f/testing-quality-assurance/behavior-verification.md) — Provides the fundamental capability to verify that code behavior matches expected results using a comprehensive assertion system. ([source](https://jasmine.github.io/pages/docs_home.html))
- [Asynchronous Test Handling](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-execution-controls/asynchronous-test-handling.md) — Supports asynchronous operations using promises or callbacks to ensure tests wait for completion. ([source](https://jasmine.github.io/pages/docs_home.html))
- [Test Lifecycle Hooks](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-lifecycle-hooks.md) — Provides setup and teardown hooks to manage environment state before and after tests and suites.
- [JavaScript Test Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/javascript-test-frameworks.md) — Provides a full framework for writing and running behavior-driven tests in Node.js and web browsers.
- [JavaScript Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/javascript-testing-frameworks.md) — Provides a complete framework for executing behavior-driven specifications in both browser and server environments. ([source](https://github.com/jasmine/jasmine/blob/main/package.json))
- [Mocking and Spying Libraries](https://awesome-repositories.com/f/testing-quality-assurance/mocking-and-spying-libraries.md) — Provides integrated spies and stubs to isolate code and record function execution data.
- [Node.js Test Automation](https://awesome-repositories.com/f/testing-quality-assurance/node-js-test-automation.md) — Enables the execution of test suites within a Node.js server environment via a CLI. ([source](https://jasmine.github.io/pages/getting_started.html))
- [Test Execution Runners](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners.md) — Provides an execution engine that manages test lifecycles, async code, and reports outcomes.
- [Browser Execution](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners/browser-execution.md) — Enables the execution of test suites within a web browser using a dedicated runner. ([source](https://jasmine.github.io/pages/getting_started.html))
- [Cross-Runtime Execution](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-infrastructure-configuration/cross-browser-testing-tools/cross-runtime-execution.md) — Executes a single set of JavaScript tests across both Node.js and web browsers for consistent behavior.
- [Behavior Driven Development Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/test-levels-and-types/behavior-driven-development-frameworks.md) — Facilitates software development through descriptive test suites that verify system behavior.
- [State Expectation Validation](https://awesome-repositories.com/f/testing-quality-assurance/state-expectation-validation.md) — Implements boolean matchers that compare actual values against expected states to determine the outcome of test specifications. ([source](https://jasmine.github.io/tutorials/your_first_suite))
- [Hierarchical Suite Grouping](https://awesome-repositories.com/f/testing-quality-assurance/test-suite-architectures/hierarchical-suite-grouping.md) — Groups specifications into nested collections to manage shared setup logic and categorize test behaviors.
- [Cross-Platform Test Execution](https://awesome-repositories.com/f/testing-quality-assurance/testing-infrastructure-management/cross-platform-test-execution.md) — Allows behavior-driven tests to run in both server environments and web browsers for compatibility verification. ([source](https://github.com/jasmine/jasmine/blob/main/README.md))
- [Custom Failure Messaging](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-failure-debugging-tools/failure-verification-tools/custom-failure-messaging.md) — Allows appending custom descriptive text to failure messages to distinguish between similar expectations. ([source](https://jasmine.github.io/pages/faq.html))
- [Test Reporters](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-reporters.md) — Ships a programmable system for processing and formatting test execution results and lifecycle events.
- [Test Report Exporters](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-reporters/external-result-reporters/tap-result-exporters/test-report-exporters.md) — Allows test results to be serialized into various standardized reporting formats for external tools. ([source](https://jasmine.github.io/pages/docs_home.html))
- [API Request Mocking](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/network-api-mocking/api-request-mocking.md) — Supports intercepting and stubbing HTTP client calls to isolate tests from external networks. ([source](https://jasmine.github.io/pages/faq.html))
- [Failure Flow Control](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/transient-failure-reruns/failure-flow-control.md) — Provides controls to determine whether a test stops immediately after the first failure or continues. ([source](https://jasmine.github.io/pages/faq.html))
- [Parallel Test Execution](https://awesome-repositories.com/f/testing-quality-assurance/parallel-test-execution.md) — Provides the ability to execute multiple test specifications concurrently to reduce total runtime. ([source](https://jasmine.github.io/pages/docs_home.html))
- [Expectation Presence Validation](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/assertions-and-validation/assertion-validation-utilities/expectation-presence-validation.md) — Fails tests that contain no expectations to ensure every specification actually verifies a behavior. ([source](https://jasmine.github.io/pages/faq.html))
- [Custom Matchers](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/assertions-and-validation/assertion-validation-utilities/snapshot-testing-utilities/custom-matcher-pipelines/custom-matchers.md) — Allows developers to create pluggable, custom matchers to validate complex domain-specific data structures. ([source](https://jasmine.github.io/pages/docs_home.html))
- [Test Execution Filtering](https://awesome-repositories.com/f/testing-quality-assurance/test-execution-filtering.md) — Allows selecting a subset of tests to run by matching specification properties against user-defined filters.
- [Shared Behaviors](https://awesome-repositories.com/f/testing-quality-assurance/testing-best-practices-methodologies/quality-assurance-practices/testing-methodologies/behavior-driven-testing/shared-behaviors.md) — Allows applying a common set of specifications across multiple components to ensure consistent behavior. ([source](https://jasmine.github.io/pages/docs_home.html))
- [Test Suite Filters](https://awesome-repositories.com/f/testing-quality-assurance/testing-infrastructure-management/test-execution-management/test-suite-filters.md) — Provides mechanisms to select specific tests or suites to run based on custom filters. ([source](https://jasmine.github.io/tutorials/upgrading_to_Jasmine_5.0))
- [Time Simulation Utilities](https://awesome-repositories.com/f/testing-quality-assurance/time-simulation-utilities.md) — Provides the ability to simulate time and timing functions to test asynchronous logic without waiting for real-time delays.
- [Virtual Time Testing](https://awesome-repositories.com/f/testing-quality-assurance/virtual-time-testing.md) — Simulates time and timing functions to test asynchronous delays synchronously. ([source](https://jasmine.github.io/tutorials/upgrading_to_Jasmine_5.0))

### Development Tools & Productivity

- [Test Suites](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/test-suites.md) — Allows organizing related specifications into grouped suites to categorize tests by behavior. ([source](https://jasmine.github.io/pages/docs_home.html))

### Software Engineering & Architecture

- [Test Reporting Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/test-reporting-pipelines.md) — Implements an event-driven system that streams test outcomes for real-time monitoring and external reporting.

### Part of an Awesome List

- [Testing and Quality Assurance](https://awesome-repositories.com/f/awesome-lists/devtools/testing-and-quality-assurance.md) — Simple testing framework for browsers and Node.js.
- [Testing Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/testing-frameworks.md) — Simple testing framework.
