Настроить транспортир-огурец e2e Угловые тесты и использовать Жасмин? - PullRequest
0 голосов
/ 23 ноября 2018

Мне было интересно, можно ли использовать библиотеку жасмина при использовании транспортира и огурца.

protractor.conf.js:

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './src/features/*.feature'
  ],
  capabilities: {
    'browserName': 'chrome'
  },
  directConnect: true,
  framework: 'custom',
  frameworkPath: require.resolve('protractor-cucumber-framework'),
  cucumberOpts: {
    require: './src/steps/**/*.ts',
  },
  onPrepare() {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
  }
};

tsconfig.e2e.json:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "commonjs",
    "target": "es5",
    "types": [
      "jasmine",
      "node"
    ]
  }
}

Определение моих шагов:

import { ChangeProfilePage } from './change-profile.po';
import { When, Then, Before } from 'cucumber';


let page: ChangeProfilePage;

Before(() => {
  page = new ChangeProfilePage();
  page.goToChangeProfile();
  page.init();
});

When('The user fills in the form with valid inputs', () => {
  page.setFaroId("123BA");
  page.setFirstName("Baptiste");
  page.setLastName("Arnaud");
  page.setEmail("bapt@gaz.com");
  page.setAdmin(true);
});

Then('The user clicks on the submit button', () => {
  page.submitForm();
});

Then('The user should see the {string} indicator', (string) => {
  expect(page.getSubmitMessage()).toEqual(true);
});

Оно выводит предупреждение:

DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

И там написано expect is not defined.

Что я тут не так делаю?Кроме того, браузер открывается и не перенаправляет на нужное место.На вкладке URL есть data:,.Что это значит?

1 Ответ

0 голосов
/ 26 ноября 2018

Если вы используете огурец в качестве тестовой среды, вы не можете использовать Jasmine без его импорта.

Исходя из заданного вами кода, вы хотите использовать утверждение api: expect, предоставленное Jasmine в тесте на огурец.скрипт.На самом деле, вместо этого вы можете использовать другую библиотеку утверждений.

Как chai и chai-as-promised, которая не зависит от любой среды тестирования.

// conf.js
exports.config = {

   onPrepare: function() {

      var chai = require('chai');

      chai.use(require('chai-as-promised'));

      global.expect = chai.expect;
   }
};

// test script

// validate non-promise value (can't use `eventually`)
expect('a string').to.equal('b string');

// validate promise value (must use `eventually`)
expect(xx.getText()).to.eventually.equal('yyyyy')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...