Dispatcher 没有在开玩笑的单元测试中注册回调
Posted
技术标签:
【中文标题】Dispatcher 没有在开玩笑的单元测试中注册回调【英文标题】:Dispatcher is not registering callbacks in jest unit tests 【发布时间】:2016-03-03 12:36:59 【问题描述】:非常类似于Dispatcher not registering callbacks in jest unit tests
我在真实商店中有 dispatcher.register。在我开玩笑的单元测试中,模拟调度程序没有注册任何回调。我在这里错过了什么吗?请告诉我..
describe(“Simple store tests",function()
var actionTypes = require('../../constants/actionTypes');
var AppDispatcher, simpleStore, callback;
//mock action
var getProjects = actionType: actionTypes.actions.GET_PROJECTS;
//prepare
AppDispatcher = require('../../dispatcher/AppDispatcher');
simpleStore = require('../simpleStore');
var simpleActions = require('../../actions/simpleActions');
//callback = AppDispatcher.register.mock.calls[0][0]; //this one fails
it('should initialize with no projects in the list',function()
var projects = simpleActions.getProjects();
console.log(AppDispatcher.register.mock.calls.length); *//this comes back as zero*
)
)
【问题讨论】:
【参考方案1】:您是否告诉 Jest 不要模拟您正在测试的商店?此外,如果您在商店中使用 object-assign
,您还应该告诉 jest 不要也嘲笑它。
在您的测试顶部添加这些行 - 在您第一次调用描述之前 - 希望可以解决问题:
jest.dontMock('../simpleStore');
jest.dontMock('object-assign'); // only if using object-assign
describe('simple store tests', function()
// rest of your code as before
);
【讨论】:
以上是关于Dispatcher 没有在开玩笑的单元测试中注册回调的主要内容,如果未能解决你的问题,请参考以下文章
createWriteStream 的 ('error') 上的开玩笑单元测试