默认间谍策略
Jasmine 通过创建一个间谍时,可以自定义它所用的默认间谍策略。通常,默认策略是 .and.stub()
,当调用间谍时,它将返回 undefined
。若想更改此选项,请在 beforeEach()
或 beforeAll()
模块中使用 jasmine.setDefaultSpyStrategy
助手。
beforeEach(function() {
jasmine.setDefaultSpyStrategy(and => and.returnValue("Hello World"));
});
it("returns the value Hello World", function() {
const spy = jasmine.createSpy();
expect(spy()).toEqual("Hello World");
});
若不带参数调用 jasmine.setDefaultSpyStrategy
,则可移除自定义默认项。如果你希望为一系列间谍临时创建间谍策略,这会很管用。
it("throws if you call any methods", function() {
jasmine.setDefaultSpyStrategy(and => and.throwError(new Error("Do Not Call Me")));
const program = jasmine.createSpyObj(["start", "stop", "examine"]);
jasmine.setDefaultSpyStrategy();
expect(() => {
program.start();
}).toThrowError("Do Not Call Me");
});