# shouldjs/should.js

BDD style assertions for node.js -- test framework agnostic

Repository: https://github.com/shouldjs/should.js
Canonical: https://ross.abutalabs.com/products/shouldjs-shouldjs
Homepage: http://shouldjs.github.io
Language: JavaScript
License: MIT
License Family: permissive
Topics: javascript, node-js, assertions, should, bdd, testing, test, tests, tdd
Archived: true
Last push: 2019-10-29T20:12:58+00:00

## Health v2 (maintenance only)
Score: 10/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 4480, "days_push": 2500, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: archived
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1889, forks 119 (observed 2026-08-28T04:05:49.405909+00:00)

## What it is
should.js is an expressive, readable BDD-style assertion library for Node.js and browsers that is test framework agnostic. It extends Object.prototype with a `.should` getter (or offers a function-style import) to write fluent, chainable assertions with helpful error messages.

## Use cases
- assert values in node.js tests with readable bdd syntax
- write framework-agnostic assertions for mocha or any test runner
- test async results with should.exist and should.not.exist
- use assertion library without polluting Object.prototype
- run assertions in the browser
- deep equality checks on objects and arrays in tests

## When to choose
- you want expressive, chainable BDD-style assertions independent of your test framework
- you prefer readable test code with helpful failure messages
- you need both getter-style and function-style assertion APIs

## When to avoid
- you need a library under active development - the latest release is from 2019
- you dislike Object.prototype extension and don't want the function-style alternative
- your test framework already bundles a preferred assertion library like chai

## Facets
- artifact type: library
- maturity: maintenance
- function: testing
- domain: testing, developer-tools
- platform: browser
- tags: bdd, assertions, tdd, test-framework-agnostic, nodejs, javascript

## Member repositories
- shouldjs/should.js (main) score 10

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:49.405909+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:13:10.423162+00:00, confidence not recorded.
  - readme: https://github.com/shouldjs/should.js (fetched 2026-08-28T04:05:49.405909+00:00, sha 662d5d386c37)
  - homepage: http://shouldjs.github.io (fetched 2026-08-29T10:52:34.148550+00:00, sha 0d1abd43f475)
- Data as of 2026-08-30T08:39:29.467469+00:00.
