# referee

[![codecov](https://codecov.io/gh/sinonjs/referee/branch/main/graph/badge.svg)](https://codecov.io/gh/sinonjs/referee)

**referee** is in your unit tests, deciding who passes and who fails.

It is a test-framework agnostic assertion and expectation library, designed to work with your choice of test runner.
Some highlights:

- Rich library of assertions
- Supports custom assertions
- Complementary `assert/refute` (`refute` is referee's `assert.not`)
- Evented: Emits success and failure events
- Failing assertions throw exceptions by default, but can be configured to not
- API to add custom assertions that provides quite a bit of plumbing for free
- 100% test coverage (enforced with `test-check-coverage` in `package.json`)

**referee** works in browsers (including old and rowdy ones, like IE11) and Node ([LTS versions](https://github.com/nodejs/Release#release-schedule)).
It will define itself as an AMD module if you want it to (i.e. if there's a
`define` function available).

## Documentation

https://sinonjs.github.io/referee/

## Backers

Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/sinon#backer)]

## Sponsors

Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/sinon#sponsor)]

## Licence

referee was released under [BSD-3](LICENSE)
