Jact测试/模拟React Native中的时刻

时间:2018-02-05 22:44:54

标签: reactjs unit-testing react-native momentjs jestjs

我正在尝试对我的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)
);




1 个答案:

答案 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;