TypeError: ожидаем (...). To.starts с не функцией - chai и chakram - PullRequest
0 голосов
/ 30 декабря 2018

Я начал писать некоторые тесты автоматизации (API)

Теперь я попытался сделать с этой конечной точкой:

https://dog.ceo/api/breeds/image/random

, поэтому я добавил в свою функцию

expect(response.body.message).to.startsWith('https://images.dog.ceo/breeds/');   

и в начале теста:

    var chakram = require('chakram');
var chai = require('chai');  
chai.use(require('chai-string'))
expect = chai.expect;    // Using Expect style
expect = chakram.expect;

Раньше у меня не было проблем, но с этим "ожидаем, что запустится ..." после выполнения теста я получил: TypeError: ожидаемо(...). to.starts с не функцией - чай ​​и шакрам

Кто-нибудь может мне помочь?

спасибо

1 Ответ

0 голосов
/ 30 декабря 2018

Вам не нужна строка, которую вы можете просто сделать:

expect(response.body.message).to.be.a('string').and.satisfy(msg => msg.startsWith('https://images.dog.ceo/breeds/'));

Можно даже сделать регулярное выражение в этом satisfy.

Или, что еще лучше, просто используйте match:

const { escapeRegExp } = require('lodash');
expect(response.body.message).to.be.a('string').and.match(/^https:\/\/images\.dog\.ceo\/breeds\//i);
expect(response.body.message).to.be.a('string').and.match(new RegExp('^' + escapeRegExp('https://images.dog.ceo/breeds/'), 'i')); // this is preferred way so you don't have to worry about escaping, rely on lodash method to escape
...