mocksフォルダーを使用して Jest のモックのドキュメントを見ましたが、あるテストで 1 つのモックを使用してモジュールをモックし、別のテストで別のモックを使用して同じモジュールをモックできるようにしたいと考えています。
たとえば、rewire と jasmine を使用すると、次のようなことができます。
//module2.js
module.exports = {
callFoo: function () {
require('moduleToMock').foo();
}
};
//module2Test.js
describe("test1", function () {
var mock;
beforeEach(function () {
var rewire = require('rewire');
mock = jasmine.createSpyObj('mock', ['foo']);
});
it("should be mocked with type1", function () {
mock.foo.and.returnValue("type1");
rewire('moduleToMock', mock);
var moduleUsingMockModule = require('module2');
expect(moduleUsingMockModule.callFoo()).toEqual("type1");
});
});
describe("test2", function () {
it("should be mocked with type2", function () {
mock.foo.and.returnValue("type2");
rewire('moduleToMock', mock);
var moduleUsingMockModule = require('module2');
expect(moduleUsingMockModule.callFoo()).toEqual("type2");
});
});
これはJestで可能ですか?違いは、すべてのテストに使用される外部フォルダーではなく、テスト内でモックを定義することです。