Я написал вспомогательные методы для добавления прослушивателя сетевых ответов поверх экземпляра страницы Puppeteer. код выглядит так
let Helper = codecept_helper;
class CheckHelper extends Helper {
async listenRequest(listener)
{
const helper = this.helpers['Puppeteer'];
await helper.page.setRequestInterception(true);
helper.page.on("request",listener);
return helper._waitForAction();
}
async listenResponse(listener)
{
const helper = this.helpers['Puppeteer'];
helper.page.on("response",listener);
return helper._waitForAction();
}
}
module.exports = CheckHelper;
затем в тестовом скрипте
let self=this;
I.listenResponse((response)=>{
if(response.url().match(/github.*\.js/) && response.headers()['content-length']>1000) {
//codeceptjs.event.emit(codeceptjs.event.test.failed, self, 'js file is too big!');
//codeceptjs.recorder.throw('js file is too big!')
//codeceptjs.recorder.stop();
//throw new Error('js file is too big!')
}
})
I.amOnPage("https://www.github.com");
Сначала я добавляю прослушиватель ответов, затем я перехожу к "github", когда какой-то размер файла js слишком велик, я выкину ошибку, чтобы тоже проверить правильность размера контента.
однако, даже если я выкидываю ошибку (как это сделали коды комментариев), основной тестовый поток просто не останавливается, как мне поступить правильно?