我正在尝试对我的React Native组件进行一些测试,该组件使用moment.js作为datepicker。我在测试/模拟moment.js时遇到了麻烦,并且想知道我是否可以获得任何示例/指针。我试图测试的两个函数如下:
CREATE TABLE FacultyCourses (
FacultyCoursesID int primary key,
CourseID int REFERENCES Courses(CourseID) ON DELETE CASCADE,
FacultyID varchar(30) REFERENCES Faculty(FacultyID)
);

答案 0 :(得分:3)
您可以尝试使用以下内容(手动模拟)将__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;