我正在为项目编写测试用例。我正在为我的容器编写测试。容器具有如下功能:
getContactDetails = (reqObject) => {
app.outageCenterService.getContact(reqObject).then(
response => {
app.logger.getLogger().info('Below is the response...');
app.logger.getLogger().info(this.state.contactDetails);
this.setState({contactDetails: response.contactDetails},()=>{});
if (this.state.contactDetails.isContactPresent) {
this.setState({ isVisible: true });
} else {
this.setState({ isVisible: false });
}
},
reject => {
app.logger.getLogger().info(reject);
}
);
}
运行测试时,在函数中,行app.outageCenterService.getContact(reqObject)
抛出错误,提示TypeError: Cannot read property 'getContact' of undefined
。我了解它是因为outageCenterService
是全局定义的,并且玩笑/酶无法找到它。但是我不知道如何解决这个问题。
我的测试看起来像这样:
describe('test the OutageAlert Component', () => {
let outageAlert, errorHandlerFn;
errorHandlerFn=jest.fn();
getContactFn=jest.fn();
outageAlert = shallow(<OutageAlertComponent errorHandler={errorHandlerFn} getContact={getContactFn} />);
});
任何人都可以帮助我解决这种情况下的测试用例吗?
答案 0 :(得分:0)
您可以考虑使用globals配置
http://facebook.github.io/jest/docs/api.html#globals-object或创建文件并
并在全球范围内为您创建一个模拟笑话,然后您就可以从测试中访问它了。
或者,您可以让容器接受联系人的参数
getContactDetails = (reqObject, contact) => { ...}
因此您可以在测试中以及使用容器的任何地方通过它。