Сколько стоит слишком много утверждений при автоматизации тестирования? - PullRequest
0 голосов
/ 16 февраля 2019

Мне дано задание создать тестовый костюм с использованием testcafe, и, когда я пишу тесты, я сталкиваюсь с одним конкретным вопросом «сколько утверждений - это слишком много?».Как правило, после проведения испытаний создается отчет.Глядя на отчет это не интуитивно понятно.Например, если элемент не найден на веб-странице, я увижу что-то вроде:

>Selector('tads') does not exist in the DOM. 

Это вынуждает меня пройти тест вручную, чтобы проверить, что не удалось.

В соответствии с документацией testcafe, вы можете добавить опциональное сообщение к утверждению. как видно здесь

На данный момент у меня есть утверждения с некоторыми сообщениями в нескольких местах.Было бы разумно иметь утверждение (с кратким сообщением об ошибке) после каждого клика или каждого действия?(т.е. нажмите кнопку входа в систему, сделайте утверждение, чтобы увидеть, появляется ли модальное имя входа. Теперь войдите, убедитесь, что модальное имя входа исчезло)

Код будет выглядеть примерно так:

await t.click(this.loginButton);
await t.expect(this.loginButton.exists).ok("I don’t see the login button");

await signup.newUserSignUp();
await t.expect(this.loginButton.exists).notOk("The login modal didn’t disappear"); 

любой отзыв будет потрясающим.

1 Ответ

0 голосов
/ 17 февраля 2019

Утверждения TestCafe могут использоваться либо для подтверждения ожидаемого в тесте, но также могут использоваться в качестве механизма ожидания, чтобы убедиться, что элемент готов, прежде чем воздействовать на него.

Это означает, что вы можете получить множество утверждений в одном тесте.

Лично я пишу каждый тест в стиле BDD следующим образом:

fixture("Feature <feature-id>: description of the feature ");

test("Scenario <scenario-id>: description of the scenario", async (t) => {
  // Given 
  await t
   .<any action>
   .<any action>
   ...

  // When
  await t
   .<any action>

  // Then
  await t
   .expect ... 
   .expect ...
   ...

});

В разделах Given и When вы можете использовать t.expect (), но толькокак механизм ожидания.

Я также никогда не помещал сообщение в .ok() или .notOk(), потому что, когда тест не пройден, мне всегда приходится проходить тест вручную, чтобы проверить, что не удалось.

Итак, структурирование ваших тестовв стиле BDD поможет вам перейти от этого вопроса: how much assertions is too much? к этому вопросу: how much tests is too much?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...