DEV Community

Lam
Lam

Posted on

2 2

Expect.Js Cheat Sheet

References

Assertions on spies

expect(spy.calls.length).toEqual(1)
expect(spy.calls[0].context).toBe(video)
expect(spy.calls[0].arguments).toEqual([ 'some', 'args' ])
expect(spy.getLastCall().arguments).toEqual(...)
Enter fullscreen mode Exit fullscreen mode
expect(spy).toHaveBeenCalled()
expect(spy).toHaveBeenCalledWith('some', 'args')
Enter fullscreen mode Exit fullscreen mode

Spies

const video = {
  play: function () { ··· }
}
Enter fullscreen mode Exit fullscreen mode
spy = expect.spyOn(video, 'play')
Enter fullscreen mode Exit fullscreen mode
spy = expect.spyOn(···)
  .andCallThrough()      // pass through
  .andCall(fn)
  .andThrow(exception)
  .andReturn(value)
Enter fullscreen mode Exit fullscreen mode

Chaining assertions

expect(3.14)
  .toExist()
  .toBeLessThan(4)
  .toBeGreaterThan(3)
Enter fullscreen mode Exit fullscreen mode

Assertions can be chained.

Assertions

expect(x).toBe(y)
  .toBe(val)
  .toEqual(val)
  .toThrow(err)
  .toExist()          // aka: toBeTruthy()
  .toNotExist()       // aka: toBeFalsy()
  .toBeA(constructor)
  .toBeA('string')
  .toMatch(/expr/)
  .toBeLessThan(n)
  .toBeGreaterThan(n)
  .toBeLessThanOrEqualTo(n)
  .toBeGreaterThanOrEqualTo(n)
  .toInclude(val)     // aka: toContain(val)
  .toExclude(val)
  .toIncludeKey(key)
  .toExcludeKey(key)
Enter fullscreen mode Exit fullscreen mode

Also: toNotBe, toNotEqual, etc for negatives.

Using

npm install --save-dev expect
Enter fullscreen mode Exit fullscreen mode

{: .-setup}

// using ES6 modules
import expect, { createSpy, spyOn, isSpy } from 'expect'
Enter fullscreen mode Exit fullscreen mode
// using CommonJS modules
var expect = require('expect')
var createSpy = expect.createSpy
var spyOn = expect.spyOn
var isSpy = expect.isSpy
Enter fullscreen mode Exit fullscreen mode

Expect is a library for assertions in tests.
See: mjackson/expect

Image of Docusign

Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs