0
Ich kann nicht toBeCalled()
in meinem Jade-Test-Skript arbeiten.Kann nicht zuBeCalled() arbeiten in Jade Testskript
ich folgende Fehler msg erhalten, wenn der Jade-Test durchgeführt:
Error: toBeCalled() should be used on a mock function or a jasmine spy
Ich habe einen Anruf zu jest.unmock('../fooey')
so nicht sicher, warum der Fehler erhalte ich?
fooey.js
var foo = function(phrase) {
return bar(phrase);
}
var bar = function(greeting) {
console.log(greeting + " Watz up?");
}
foo("Hi Bob!");
module.exports.foo = foo;
module.exports.bar = bar;
fooey-test.js:
jest.unmock('../fooey'); // unmock to use the actual implementation.
describe('fooey()',() => {
const foo = require('../fooey').foo;
const bar = require('../fooey').bar;
it('bar() is called.',() => {
foo("Hi Bob!");
expect(bar).toBeCalled();
});
});
Ich war nach dem Jest Tutorial, in dem sie nennen 'jest.unmock (‘ ../ fetchCurrentUser.js'); '. https://facebook.github.io/jest/docs/tutorial.html#content –
Nachdem ich mich in Jest über Mocks informiert habe, glaube ich nicht, dass ich das brauche. Ich möchte 'foo()' nennen und Jest sagen lassen, ob bar '()' innerhalb von 'foo()' aufgerufen wurde. –
Ich habe dies funktioniert mit spyOn(), obwohl ich foo() und bar() in einem Wrapper func() umwickeln musste, um nach spyOn() API arbeiten die Spionage-Funktion innerhalb des gleichen Objekts zu sein. d. h. 'spyOn (fooey, 'bar'); fooey.foo ("Hallo Bob!"); expect (fooey.bar) .toHaveBeenCalledWith ("Hallo Bob!"); '' ' Frage 1) gibt es eine bessere Möglichkeit, dies mit Jest API zu tun, 2) kann ich dies tun, ohne meinen Code in eine Verpackung. –