из rspec, у меня проблемы с пониманием насмешек с шуткой. подход, который я пытаюсь использовать, заключается в том, чтобы автоматически блокировать конструктор класса и все его функции, а затем снимать их один за другим для проверки только этой одной функции. единственная документация, которую я могу найти, - это использование 2 классов, макетирование 1 класса, а затем проверка того, что эти функции вызываются из другого немодулированного класса.
ниже - основная, выдуманная идея о том, что я пытаюсь сделать. может кто-нибудь направить меня к шутливому способу сделать это?
foo.js
class Foo
constructor: ->
this.bar()
this.baz()
bar: ->
return 'bar'
baz: ->
return 'baz'
foo_test.js
// require the class
Foo = require('foo')
// mock entire Foo class methods
jest.mock('foo')
// unmock just the bar method
jest.unmock(Foo::bar)
// or by
Foo::bar.mockRestore()
// and should now be able to call
foo = new Foo
foo.bar() // 'bar'
foo.baz() // undefined (still mocked)
// i even tried unmocking the instance
foo = new Foo
jest.unmock(foo.bar)
foo.bar.mockRestore()