DEV Community

Lam
Lam

Posted on

2 2

Jasmine Cheat Sheet

References

[Tests] Event spies

spyOnEvent($('#some_element'), 'click')
$('#some_element').click()
expect('click').toHaveBeenPreventedOn($('#some_element'))
expect('click').toHaveBeenTriggeredOn($('#some_element'))
Enter fullscreen mode Exit fullscreen mode

[Tests] HTML runner

var jasmineEnv = jasmine.getEnv()
jasmineEnv.updateInterval = 250

var htmlReporter = new jasmine.HtmlReporter()
jasmineEnv.addReporter(htmlReporter)

$(function() { jasmineEnv.execute() })
Enter fullscreen mode Exit fullscreen mode

Jasmine jQuery

[Tests] Async

test('works with promises', () => {
  return new Promise((resolve, reject) => {
    ···
  })
})
Enter fullscreen mode Exit fullscreen mode

Make your test return a promise.

[Tests] Creating spies

stub = jasmine.createSpy('stub')
stub('hello')
Enter fullscreen mode Exit fullscreen mode
expect(stub.identity).toEqual('stub')
expect(stub).toHaveBeenCalled()
Enter fullscreen mode Exit fullscreen mode

[Tests] Spies

spyOn(foo, 'setBar')
spyOn(foo, 'setBar').andReturn(123)
spyOn(foo, 'getBar').andCallFake(function() { return 1001; })
foo.setBar(123)
Enter fullscreen mode Exit fullscreen mode
expect(foo.setBar).toHaveBeenCalled()
expect(foo.setBar).toHaveBeenCalledWith(123)
expect(foo.setBar.calls.length).toEqual(2)
expect(foo.setBar.calls[0].args[0]).toEqual(123)
Enter fullscreen mode Exit fullscreen mode

[Tests] Pending

xit('this is a pending test', () => {
  ···
})
Enter fullscreen mode Exit fullscreen mode
xdescribe('this is a pending block', () => {
  ···
})
Enter fullscreen mode Exit fullscreen mode

[Tests] Hooks

beforeEach(() => {
  ···
})
Enter fullscreen mode Exit fullscreen mode
afterEach(() => {
  ···
})
Enter fullscreen mode Exit fullscreen mode

[Tests] Expectations

expect(true).toBe(true)
expect(true).not.toBe(true)
Enter fullscreen mode Exit fullscreen mode
expect(a).toEqual(bar)
Enter fullscreen mode Exit fullscreen mode
expect(message).toMatch(/bar/)
expect(message).toMatch('bar')
Enter fullscreen mode Exit fullscreen mode
expect(a.foo).toBeDefined()
expect(a.foo).toBeUndefined()
expect(a.foo).toBeNull()
Enter fullscreen mode Exit fullscreen mode
expect(a.foo).toBeTruthy()
expect(a.foo).toBeFalsy()
Enter fullscreen mode Exit fullscreen mode
expect(message).toContain('hello')
Enter fullscreen mode Exit fullscreen mode
expect(pi).toBeGreaterThan(3)
expect(pi).toBeLessThan(4)
expect(pi).toBeCloseTo(3.1415, 0.1)
Enter fullscreen mode Exit fullscreen mode
expect(func).toThrow()
Enter fullscreen mode Exit fullscreen mode

[Tests] Writing tests

describe('A suite', () => {
  it('works', () => {
    expect(true).toBe(true)
  })
})
Enter fullscreen mode Exit fullscreen mode

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

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

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay