Попытка настроить Jshamcrest для использования в моем приложении angularjs (с помощью приложения angular -phonecat), чтобы я мог использовать его с Cucumber Js. Я просматриваю документацию по JsHamcrest, но не вижу, как на самом деле настроить файл javascript. Я использую JsHamcrest Руководство по началу работы . У них здесь есть фрагмент:
// Make JsHamcrest matchers globally accessible
JsHamcrest.Integration.copyMembers(this);
equalTo('10').matches(10); // Expected: true
between(5).and(10).matches(7); // Expected: true
greaterThan(Math.PI).matches(4); // Expected: true
Я попытался просто сделать JsHamcrest.Integration.copyMembers(this);
, и я получил ReferenceError: JsHamcrest is not defined
. Не уверен, что здесь не так. Вот что у меня есть:
Мой package.json
{
"name": "angular-phonecat",
"private": true,
"version": "0.0.0",
"description": "A tutorial application for AngularJS",
"repository": "https://github.com/angular/angular-phonecat",
"license": "MIT",
"dependencies": {
"angular": "1.7.x",
"bootstrap": "3.3.x"
},
"devDependencies": {
"cpx": "^1.5.0",
"cucumber": "^6.0.5",
"http-server": "^0.11.1",
"jshamcrest": "^0.7.1",
"protractor": "^5.4.1"
},
"scripts": {
"postinstall": "npm run copy-libs",
"update-deps": "npm update",
"postupdate-deps": "npm run copy-libs",
"copy-libs": "cpx \"node_modules/{angular,angular-*,bootstrap/dist}/**/*\" app/lib -C",
"start": "http-server ./app -a localhost -p 8000 -c-1",
"test": "cucumber-js -p default",
"test-single-run": "npm test -- --single-run",
"preupdate-webdriver": "npm install",
"update-webdriver": "webdriver-manager update",
"preprotractor": "npm run update-webdriver",
"protractor": "protractor e2e-tests/protractor.conf.js"
}
}
Мой stepdefs.js
const assert = require('assert');
const { Given, When, Then } = require('cucumber');
function isItFriday(today) {
if (today === "Friday") {
return "TGIF";
} else {
return "Nope";
}
}
JsHamcrest.Integration.copyMembers(this); //Throws error here
Given('today is {string}', function (givenDay) {
this.today = givenDay;
});
When('I ask whether it\'s Friday yet', function () {
this.actualAnswer = isItFriday(this.today);
});
Then('I should be told {string}', function (expectedAnswer) {
assert.equal(this.actualAnswer, expectedAnswer);
});