我正在尝试对使用moment.js作为数据报警器的进行测试。我在测试/模拟moment.js时遇到了麻烦,我想知道我是否可以得到任何示例/指针。我尝试测试的两个功能如下:
setDate = (newDate) => {
this.setState({ selectedDate: moment(newDate) });
}
handleOnPress = () => {
this.props.onModalButtonPress(this.state.selectedDate.unix());
}
发布于 2018-04-09 04:45:57
您可以尝试将模拟的__mocks__
文件夹(测试文件旁边)放入具有以下内容的模拟moment.js
(手动模拟):
const moment = require.requireActual('moment');
export default (timestamp=0) => {
return moment(timestamp);
}
然后Jest会在你的测试中使用它。以上将确保调用moment()
将返回同一时间。这对测试比较有帮助。
如果您使用的是一些静态方法,如weekdaysShort
,则需要修改模拟以包含此方法(以及您可能使用过的任何其他方法):
const moment = require.requireActual('moment');
const mockedMoment = (timestamp=0) => {
return moment(timestamp);
};
mockedMoment.weekdaysShort = () => [
"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
];
export default mockedMoment;
https://stackoverflow.com/questions/48632721
复制