awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
jasmine avatar

jasmine/jasmine

0
View on GitHub↗
15,824 stars·2,240 forks·JavaScript·MIT·23 viewsjasmine.github.io↗

Jasmine

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.

Features

  • JavaScript Application Testing - Provides a comprehensive framework for verifying the behavior of JavaScript applications in browser and server environments.
  • Behavior-Driven Testing - Provides a full framework for executing behavior-driven test suites across browser and server environments.
  • Test Suites - Allows organizing related specifications into grouped suites to categorize tests by behavior.
  • Assertion Matchers - Uses a pluggable system of boolean matchers to verify that actual values meet expected criteria.
  • Asynchronous Logic Validation - Testing JavaScript functions that use promises or callbacks to ensure operations complete correctly before assertions are made.
  • Asynchronous Test Execution - Handles asynchronous tests by awaiting promises or tracking callbacks before moving to the next specification.
  • Behavior Verification - Provides the fundamental capability to verify that code behavior matches expected results using a comprehensive assertion system.
  • Asynchronous Test Handling - Supports asynchronous operations using promises or callbacks to ensure tests wait for completion.
  • Test Lifecycle Hooks - Provides setup and teardown hooks to manage environment state before and after tests and suites.
  • JavaScript Test Frameworks - Provides a full framework for writing and running behavior-driven tests in Node.js and web browsers.
  • JavaScript Testing Frameworks - Provides a complete framework for executing behavior-driven specifications in both browser and server environments.
  • Mocking and Spying Libraries - Provides integrated spies and stubs to isolate code and record function execution data.
  • Node.js Test Automation - Enables the execution of test suites within a Node.js server environment via a CLI.
  • Test Execution Runners - Provides an execution engine that manages test lifecycles, async code, and reports outcomes.
  • Browser Execution - Enables the execution of test suites within a web browser using a dedicated runner.
  • Cross-Runtime Execution - Executes a single set of JavaScript tests across both Node.js and web browsers for consistent behavior.
  • Behavior Driven Development Frameworks - Facilitates software development through descriptive test suites that verify system behavior.
  • State Expectation Validation - Implements boolean matchers that compare actual values against expected states to determine the outcome of test specifications.
  • Hierarchical Suite Grouping - Groups specifications into nested collections to manage shared setup logic and categorize test behaviors.
  • Cross-Platform Test Execution - Allows behavior-driven tests to run in both server environments and web browsers for compatibility verification.
  • Test Reporting Pipelines - Implements an event-driven system that streams test outcomes for real-time monitoring and external reporting.
  • Custom Failure Messaging - Allows appending custom descriptive text to failure messages to distinguish between similar expectations.
  • Test Reporters - Ships a programmable system for processing and formatting test execution results and lifecycle events.
  • Test Report Exporters - Allows test results to be serialized into various standardized reporting formats for external tools.
  • API Request Mocking - Supports intercepting and stubbing HTTP client calls to isolate tests from external networks.
  • Failure Flow Control - Provides controls to determine whether a test stops immediately after the first failure or continues.
  • Parallel Test Execution - Provides the ability to execute multiple test specifications concurrently to reduce total runtime.
  • Expectation Presence Validation - Fails tests that contain no expectations to ensure every specification actually verifies a behavior.
  • Custom Matchers - Allows developers to create pluggable, custom matchers to validate complex domain-specific data structures.
  • Test Execution Filtering - Allows selecting a subset of tests to run by matching specification properties against user-defined filters.
  • Shared Behaviors - Allows applying a common set of specifications across multiple components to ensure consistent behavior.
  • Test Suite Filters - Provides mechanisms to select specific tests or suites to run based on custom filters.
  • Time Simulation Utilities - Provides the ability to simulate time and timing functions to test asynchronous logic without waiting for real-time delays.
  • Virtual Time Testing - Simulates time and timing functions to test asynchronous delays synchronously.
  • Testing and Quality Assurance - Simple testing framework for browsers and Node.js.
  • Testing Frameworks - Simple, DOM-independent testing framework.

Star history

Star history chart for jasmine/jasmineStar history chart for jasmine/jasmine

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Jasmine

Similar open-source projects, ranked by how many features they share with Jasmine.
  • onsi/ginkgoonsi avatar

    onsi/ginkgo

    9,014View on GitHub↗

    Ginkgo is a behavior-driven development testing framework, assertion library, and test runner for Go. It provides a domain-specific language for writing human-readable specifications, organizing tests into hierarchical containers and subjects to describe system behavior. The project distinguishes itself through advanced execution control and observability, featuring a test runner capable of parallel distribution, sharding, and randomized execution order to detect flaky tests. It includes specialized diagnostic tools for goroutine leak detection, hanging spec monitoring, and failure state debu

    Go
    View on GitHub↗9,014
  • mochajs/mochamochajs avatar

    mochajs/mocha

    22,967View on GitHub↗

    Mocha is a JavaScript test runner and framework designed to execute automated test suites across multiple runtimes, including Node.js and web browser environments. It functions as a pluggable testing tool for organizing and validating unit, integration, and functional tests. The project distinguishes itself through a plugin-based extension interface that allows for custom functionality and reporting. It supports a multi-runtime approach, enabling the same test suite to run in different JavaScript environments, and includes a watch mode that monitors the filesystem to trigger automatic test re

    JavaScriptbddbrowserjavascript
    View on GitHub↗22,967
  • jquery/qunitjquery avatar

    jquery/qunit

    4,035View on GitHub↗

    QUnit is a JavaScript unit testing framework designed to verify code behavior using assertions and lifecycle hooks across browsers and server runtimes. It functions as a browser-based test runner with an HTML interface for reporting results, an asynchronous test orchestrator for coordinating callbacks, and a utility for isolating and verifying document object model changes. The framework distinguishes itself through specialized DOM testing capabilities, allowing for the isolation and resetting of the document object model between tests to ensure atomicity. It also features a system for detect

    JavaScript
    View on GitHub↗4,035
  • avajs/avaavajs avatar

    avajs/ava

    20,849View on GitHub↗

    Ava is a test runner for JavaScript and TypeScript designed to execute test suites with a focus on concurrency and isolation. It serves as a concurrent test executor that runs test files in parallel across multiple processes to reduce total runtime and prevent state leakage between suites. The project features a built-in snapshot testing framework that saves large data structures to disk and compares subsequent executions to detect regressions via diffs. It is also compatible with the Test Anything Protocol, allowing it to export results for use with external reporting tools. Its capability

    JavaScriptassertasyncasync-functions
    View on GitHub↗20,849
See all 30 alternatives to Jasmine→

Frequently asked questions

What does jasmine/jasmine do?

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.

What are the main features of jasmine/jasmine?

The main features of jasmine/jasmine are: JavaScript Application Testing, Behavior-Driven Testing, Test Suites, Assertion Matchers, Asynchronous Logic Validation, Asynchronous Test Execution, Behavior Verification, Asynchronous Test Handling.

What are some open-source alternatives to jasmine/jasmine?

Open-source alternatives to jasmine/jasmine include: onsi/ginkgo — Ginkgo is a behavior-driven development testing framework, assertion library, and test runner for Go. It provides a… mochajs/mocha — Mocha is a JavaScript test runner and framework designed to execute automated test suites across multiple runtimes,… jquery/qunit — QUnit is a JavaScript unit testing framework designed to verify code behavior using assertions and lifecycle hooks… avajs/ava — Ava is a test runner for JavaScript and TypeScript designed to execute test suites with a focus on concurrency and… substack/tape — Tape is a JavaScript testing framework and assertion library that serves as a test runner for Node.js and browser… jestjs/jest — Jest is a JavaScript testing framework designed for writing and running automated test suites to verify the…