У меня есть простой тестовый пример E2E, где я проверяю, присутствует ли на странице тег h1
.Я использую транспортир с жасмином.
Моя проблема в том, что при загрузке страницы на странице появляется распознаватель.Средство распознавания делает запрос GET для некоторых данных и передает их компоненту.Когда я запускаю тест, вызов никогда не выполняется успешно (отлично работает вне тестовой среды).Это всегда тайм-аут.
Почему это происходит?Я не уверен, что делать дальше.
Вот мой код:
ContentResolver :
@Injectable()
export class ContentResolver implements Resolve<any> {
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<any> {
return new Promise((resolve, reject) => {
this.httpClient.get('test/content-data').subscribe(response => {
if (response.body && response.status < 300) {
resolve(response);
}
else {
reject(response);
}
});
}
}
}
Тестовые файлы :
import { AppPage } from './app.po';
describe('App', () => {
let component: AppPage;
beforeEach(async () => {
component = new AppPage();
await component.navigateTo('Test');
await component.successfulNavigation();
});
it('should display welcome message', async () => {
await component.getTitleText().then(response => {
expect(response).toEqual('Test Data');
});
});
});
app.po.ts
import { browser, by, element, ExpectedConditions as EC } from 'protractor';
export class AppPage {
async navigateTo(path) {
await browser.get(`http://localhost:8080/${path}`);
}
async successfulNavigation() {
return await browser.wait(EC.presenceOf(element(by.tagName('h1'))), 30000);
}
getTitleText() {
return element(by.tagName('h1')).getText();
}
}