У меня есть приложение, для которого перезагрузка/перемещение страниц и iframe имеют решающее значение, и эти части кажутся очень сложными, чтобы покрыть модульные тесты.
Я хочу писать smt. например:
it('should fire appropriate callbacks on start and page reload', function() {
app.start();
expect(app.onStart).toHaveBeenCalled();
page.reload();
expect(app.onRestart).toHaveBeenCalled();
}
it('should know whether it runs in iframe or not', function() {
expect(app.isInIframe()).toBe(false);
iframe = createTestIframe();
expect(iframe.getApp().isInIframe()).toBe(true);
}
Структуры модульного тестирования, которые я знаю (mocha, Jasmine, QUnit), предназначены для выполнения всего набора тестов на одной странице в верхнем контексте.
С другой стороны, рамки функционального тестирования (FuncUnit, TestCafé, Selenium WebDriver), похоже, сосредоточены на абстракциях высокого уровня, таких как "щелчок элемента", "проверка значения элемента" и т.д., не дающий возможности вникать в выполнение кода.
Отказ от ответственности: я довольно новичок в тестировании в целом, поэтому, возможно, мне стоит рассмотреть проблему с другой точки зрения вообще.