Как настроить JsHamcrest для AngularJS? - PullRequest
0 голосов
/ 13 апреля 2020

Попытка настроить 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);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...