Мы хотим автоматизировать тестирование для наших аналитических вызовов.Я в настоящее время оцениваю инструменты тестирования переднего конца, которые могут быть использованы для этого.Я обнаружил, что TestCafe Studio - это то, что нам нужно для создания тестов, но сначала мне нужно некоторое подтверждение концепции.Таким образом, я пытаюсь сначала написать простой тестовый пример.Но я борюсь с тем, что кажется самым основным.Я хочу утверждать, что некоторые параметры в запросе имеют определенное значение.Поэтому я создал RequestHook
в соответствии с документацией: https://devexpress.github.io/testcafe/documentation/test-api/intercepting-http-requests/creating-a-custom-http-request-hook.html (что они пропускают, так это то, что вам нужно экспортировать свой класс, если вы поместите его в отдельный файл ...) У меня две проблемысейчас:
- Как мне ждать выполнения этого запроса?
await t
только для страницы, которую я запрашиваю, но затем вызов аналитики выполняется позже. - Как предоставить тесту некоторые данные, собранные в ловушке?
Вот как далеко я продвинулся (я получил URL в консоли):
import { RequestHook} from 'testcafe';
export class AnalyticsRequestHook extends RequestHook {
constructor (requestFilterRules, responseEventConfigureOpts) {
super(requestFilterRules, responseEventConfigureOpts);
}
async onRequest (event) {
console.log(event.requestOptions.url);
}
async onResponse (event) {
}
}
Затем я создаю экземпляр этого класса с помощью:
const analyticsRequestHook = new AnalyticsRequestHook(/https:\/\/trackinghost.com\//);
В некоторых других примерах они простоимпортируйте t
, и вы должны иметь доступ к нему в методах.Но это, похоже, не работает для RequestHooks, так как я получаю следующую ошибку, как только я пытаюсь получить доступ к t
:
Не удается неявно разрешить тестовый прогон, в контексте которого действие контроллера тестадолжно быть выполнено.Вместо этого используйте аргумент тестовой функции 't'.
Но в onRequest
я не могу передать другие аргументы.
Так что мои два вопроса даже возможны, если да, пожалуйста, предоставьтеНапример, я действительно полный новичок с testcafe.