我使用 mocha 来测试反应,但我认为它也适用于开玩笑。
您应该使用 2 个包:mock-require和proxyquire。
假设你有一个这样的 js 文件:
应用程序.js
import action1 from 'actions/youractions';
export function foo() { console.log(action1()) };
你的测试代码应该这样写:
app.test.js
import proxyquire from 'proxyquire';
import mockrequire from 'mock-require';
before(() => {
// mock the alias path, point to the actual path
mockrequire('actions/youractions', 'your/actual/action/path/from/your/test/file');
// or mock with a function
mockrequire('actions/youractions', {actionMethod: () => {...}));
let app;
beforeEach(() => {
app = proxyquire('./app', {});
});
//test code
describe('xxx', () => {
it('xxxx', () => {
...
});
});
文件树
app.js
|- test
|- app.test.js
首先在 before 函数中通过 mock-require 模拟别名路径,并在 beforeEach 函数中通过 proxyquire 模拟您的测试对象。