Тест Clojure с множественными утверждениями

Я начинаю учиться писать тесты для моей программы Clojure. У меня есть тест с несколькими утверждениями (звонки на is). Я хочу, чтобы тест прекратился, как только произойдет сбой первого утверждения. Вот мой тест:

(deftest register-one-command
  (testing "Register-one-command"
    (do
      (is (= 0 (count @test/list-of-commands)))
      (test/add-to-list-of-commands ["A"])
      (is (= 1 (count @test/list-of-commands))))))

Если первый is не удается, я хочу, чтобы все это провалилось.

1 ответ

Решение

Самый простой способ - просто обернуть разные тесты в and

(deftest register-one-command
  (testing "Register-one-command"
    (is (and
          (= 0 (count @test/list-of-commands))
          (test/add-to-list-of-commands ["A"])
          (= 1 (count @test/list-of-commands))))))

Однако, если это возможно, я бы попытался реструктурировать тесты, чтобы лишняя сложность не потребовалась.

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