openlang

Как тестировать целое wasm-приложение через cargo?

Возможно, это не совсем специфично для rust, но тестирование через cargo настолько удобно, что хочется остаться с ним...

Я превращаю хорошо протестированное настольное приложение в wasm-приложение. После переноса IO выше по цепочке вызовов менять пришлось совсем немного, так что библиотека с кодом, составляющим wasm-приложение, в итоге остаётся хорошо протестированной.

Однако полное «приложение» включает и другие части, немного html и довольно много JS. Хотелось бы покрыть тестами всё это (в идеале в разных браузерах), но я не знаю, с чего начать (особенно как связать это с cargo test). Наверное, надо запустить веб-сервер... а дальше? Нужно заполнить html-форму, нажать кнопку отправки, а затем, вероятно, подтвердить загрузку и проверить правильность её содержимого.

Может, кто-нибудь подскажет, в каком направлении искать. Заранее спасибо!

Переведено с английскогоПоказать оригинал

Разговор продолжается 3

Следуя доводам
  1. Ссылка на ответ

    Поведение wasm зависит от браузера. Тест может проходить в Chrome и падать в Firefox. Поэтому придётся запускать тот браузер, который хотите тестировать (обычно предназначенный для этого вариант без интерфейса).

    Фреймворки UI-тестирования позволяют программно задавать действия вроде кликов, движений мыши и ввода текста. Затем можно проверить получившиеся значения либо сделать снимок и сравнить его попиксельно.

    Переведено с английскогоПоказать оригинал
  2. Ссылка на ответ

    В своих тестах я поднимаю отдельный веб-сервер для каждого теста примерно как в примере тестового сервера из обсуждения ureq #1178 (https://github.com/algesten/ureq/discussions/1178), и это неплохо работает. Также вполне вероятно, что кто-то уже оформил похожую функциональность в крейт.

    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Как в Java Mail показывать текстовое имя отправителя вместо его настоящего адреса электронной почты

    Я отправляю сообщения через Java Mail API. После доставки во входящих отображается адрес отправителя. Хочу показывать вместо…

    Ответы 2Последняя активность java
  2. Доступ к Dynamics CRM из TypeScript

    Мой код CRM выполняется в веб-ресурсе, поэтому для получения данных сущности приходится писать чтобы обратиться к этим данным…

    Ответы 2Последняя активность typescript
  3. Какой формат даты нужен заголовку HTTP-ответа в Gleam?

    Я хочу отправлять заголовок Date. Требуемый формат выглядит следующим образом: Вот мой текущий вариант кода:

    Ответы 3Последняя активность gleam