J'ai besoin de configurer le test de l'unité frontale pour mon projet PHP. J'ai décidé d'aller avec Jest.Comment configurer Jest pour un test d'unité normal avec un projet php?
Voici donc mon 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"
}
}
Puis j'ai fait __tests__
dossier et de faire ma première fonction de test comme celui-ci.
// homepage.test.js
require('../modules/homepage.js');
test('adds 1 + 2 to equal 3', function() {
expect(Homepage.sum.sumNumber(1, 2)).toBe(3);
});
Et ceci est mon homepage.js
// homepage.js
var Homepage = {};
(function() {
"use strict";
Homepage.sum = {
sumNumber: function(num1, num2) {
return num1 + num2
}
};
})();
Je couru npm run test
C'est ce que je got:
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
On dirait que mon fichier de test ne peut pas accéder à la fonction dans mon fichier Homepage.js.
Comment puis-je résoudre ce problème et le faire fonctionner?
Merci
est-il de toute façon de le faire sans utiliser js commun, car l'application est en cours d'exécution tout sans 'module.exports' donc ne pas ajouter c'est une bonne idée. –
@ varis.dara, vous pouvez préparer le code js modulaire commun pour les navigateurs en utilisant [browserify] (http://browserify.org/) ou en utilisant un système de chargement de module AMD comme [requirejs] (http: // requirejs. org /) ou utilisez le modèle de module ES6 qui est assez récent et uniquement pris en charge par les navigateurs les plus récents. Vous devriez donc utiliser un transteteur comme [babel] (https://babeljs.io/) pour le convertir en js commun puis le filtrer. Tous ces éléments pourraient facilement être configurés dans une tâche de gulp à faire automatiquement. – dNitro