Socket
Socket
Sign inDemoInstall

expect

Package Overview
Dependencies
0
Maintainers
1
Versions
236
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    expect

Write better assertions


Version published
Weekly downloads
29M
decreased by-2.84%
Maintainers
1
Install size
24.2 kB
Created
Weekly downloads
 

Package description

What is expect?

The 'expect' npm package is a library for writing test assertions. It is commonly used in conjunction with testing frameworks like Jest or Mocha to validate the behavior of JavaScript code. It provides a range of assertion types and matchers that allow developers to write expressive and readable tests.

What are expect's main functionalities?

Basic Assertions

This feature allows you to assert that a value matches exactly what you expect. The 'toBe' matcher compares with ===.

expect(2 + 2).toBe(4);

Object Property Assertions

With this feature, you can assert that an object has a specific property with a certain value. The 'toHaveProperty' matcher checks for the existence and value of a property in an object.

expect({ name: 'Alice', age: 30 }).toHaveProperty('name', 'Alice');

Exception Testing

This feature is used to test if a function throws an exception when it is executed. The 'toThrow' matcher is used to assert that an error is thrown with a specific message.

expect(() => { throw new Error('failure'); }).toThrow('failure');

Array Containment

This feature allows you to assert that an array contains a specific item. The 'toContain' matcher checks if an array includes the expected item.

expect(['Alice', 'Bob', 'Eve']).toContain('Bob');

Asynchronous Assertions

This feature enables you to write assertions for asynchronous code. The 'resolves' matcher waits for a promise to resolve and then checks the resolved value.

expect(Promise.resolve('success')).resolves.toBe('success');

Other packages similar to expect

Readme

Source

npm package build status dependency status code climate

expect is a thin wrapper around node's assert module that lets you write better assertions.

When you use expect, you write assertions similarly to how you would say them, e.g. "I expect this value to be equal to 3" or "I expect this array to contain 3". When you write assertions in this way, you don't need to remember the order of actual and expected arguments to functions like assert.equal, which helps you write better tests.

Usage

expect(object).toBe(value, [message])

Asserts that object is strictly equal to value using assert.strictEqual.

expect(object).toNotBe(value, [message])

Asserts that object is not strictly equal to value using assert.notStrictEqual.

expect(object).toEqual(value, [message])

Asserts that the given object equals value using assert.equal.

expect(object).toNotEqual(value, [message])

Asserts that the given object is not equal to value using assert.notEqual.

expect(block).toThrow([error], [message])

Asserts that the given block throws an error using assert.throws. The error argument may be a constructor, RegExp, or validation function.

expect(function () {
  throw new Error('boom!');
}).toThrow(/boom/);
expect(block).toNotThrow([message])

Asserts that the given block does not throw using assert.doesNotThrow.

expect(object).toExist([message])

Asserts the given object is truthy.

expect('something truthy').toExist();
expect(object).toNotExist([message])

Asserts the given object is falsy.

expect(null).toNotExist();
expect(object).toBeA(constructor, [message])
expect(object).toBeAn(constructor, [message])

Asserts the given object is an instanceof constructor.

expect(new User).toBeA(User);
expect(new Asset).toBeAn(Asset);
expect(object).toBeA(string, [message])

Asserts the typeof the given object is string.

expect(2).toBeA('number');
expect(string).toMatch(pattern, [message])

Asserts the given string matches pattern, which must be a RegExp.

expect('a string').toMatch(/string/);
expect(number).toBeLessThan(value, [message])
expect(number).toBeFewerThan(value, [message])

Asserts the given number is less than value.

expect(2).toBeLessThan(3);
expect(number).toBeGreaterThan(value, [message])
expect(number).toBeMoreThan(value, [message])

Asserts the given number is greater than value.

expect(3).toBeGreaterThan(2);
expect(array).toInclude(value, [comparator], [message])
expect(array).toContain(value, [comparator], [message])

Asserts the given array contains value. The comparator function, if given, should compare two objects and either return false or throw if they are not equal. It defaults to assert.deepEqual.

expect([ 1, 2, 3 ]).toInclude(3);
expect(array).toExclude(value, [comparator], [message])
expect(array).toNotContain(value, [comparator], [message])

Asserts the given array does not contain value. The comparator function, if given, should compare two objects and either return false or throw if they are not equal. It defaults to assert.deepEqual.

expect([ 1, 2, 3 ]).toExclude(4);
expect(string).toInclude(value, [message])
expect(string).toContain(value, [message])

Asserts the given string contains value.

expect('hello world').toInclude('world');
expect('hello world').toContain('world');
expect(string).toExclude(value, [message])
expect(string).toNotContain(value, [message])

Asserts the given string does not contain value.

expect('hello world').toExclude('goodbye');
expect('hello world').toNotContain('goodbye');

Spies

expect.js also includes the ability to create spy functions that can track the calls that are made to other functions and make various assertions based on the arguments and context that were used.

var video = {
  play: function () {},
  pause: function () {},
  rewind: function () {}
};

var spy = expect.spyOn(video, 'play');

video.play('some', 'args');

expect(spy.calls.length).toEqual(1);
expect(spy.calls[0].context).toBe(video);
expect(spy.calls[0].arguments).toEqual([ 'some', 'args' ]);
expect(spy).toHaveBeenCalled();
expect(spy).toHaveBeenCalledWith('some', 'args');

Chaining Assertions

Every assertion returns an Expectation object, so you can chain assertions together.

expect(3.14)
  .toExist()
  .toBeLessThan(4)
  .toBeGreaterThan(3);

Installation

Using npm:

$ npm install expect

Or, include dist/expect.min.js in your page using a <script> tag:

<script src="expect.min.js"></script>

Issues

Please file issues on the issue tracker on GitHub.

Tests

To run the tests in node:

$ npm install
$ npm test

To run the tests in Chrome:

$ npm install
$ npm run test-browser

License

MIT

Keywords

FAQs

Last updated on 02 Feb 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc