【发布时间】:2017-08-03 16:44:25
【问题描述】:
我需要为我的 PHP 项目设置前端单元测试。 我决定和 Jest 一起去。
这是我的 package.json。
{
"name": "staging-deploy",
"version": "1.0.0",
"description": "Staging deploy",
"main": "GulpFile.js",
"author": "some one",
"license": "BSD-2-Clause",
"dependencies": {
"bower": "^1.8.0",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.1",
"gulp-chmod": "^2.0.0",
"gulp-closure-compiler": "^0.4.0",
"gulp-concat": "^2.6.1",
"gulp-cssnano": "^2.1.2",
"gulp-duration": "0.0.0",
"gulp-jasmine": "^2.4.2",
"gulp-less": "^3.3.2",
"gulp-load-plugins": "^1.4.0",
"gulp-pixrem": "^1.0.0",
"gulp-postcss": "^6.3.0",
"gulp-replace": "^0.5.4",
"gulp-sourcemaps": "^1.11.0",
"gulp-update": "0.0.2",
"gulp-update-modul": "^1.5.5",
"gulp-watch-less": "^1.0.1",
"run-sequence": "^2.0.0"
},
"devDependencies": {
"jest": "^20.0.4"
},
"scripts": {
"test": "jest"
}
}
然后我创建了__tests__ 文件夹并像这样制作了我的第一个测试功能。
// homepage.test.js
require('../modules/homepage.js');
test('adds 1 + 2 to equal 3', function() {
expect(Homepage.sum.sumNumber(1, 2)).toBe(3);
});
这是我的主页.js
// homepage.js
var Homepage = {};
(function() {
"use strict";
Homepage.sum = {
sumNumber: function(num1, num2) {
return num1 + num2
}
};
})();
然后我跑了npm run test
这是我得到的:
FAIL __tests__/homepage.test.js
● adds 1 + 2 to equal 3
ReferenceError: Homepage is not defined
at Object.<anonymous> (__tests__/homepage.test.js:4:12)
at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)
at process._tickCallback (internal/process/next_tick.js:109:7)
✕ adds 1 + 2 to equal 3 (2ms)
Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 total
Snapshots: 0 total
Time: 3.138s, estimated 11s
似乎我的测试文件无法访问我的 Homepage.js 文件中的函数。
我该如何解决这个问题并使其正常工作?
谢谢
【问题讨论】:
标签: javascript unit-testing jestjs