Lein test
выполняет мои функции в случайном порядке.Способ подключения теста, один за другим в clojure?
У меня есть две функции, которые изменяют одни и те же данные. Мне нужно, чтобы первый из них запускался первым, а второй - после него. Порядок в моем тесте firles
Пример:
;;===============my file=============
;;this fails if x and y are not found.
(defn create-data [x y]
(go add x y))
;;if the update function doesn't find x and y it adds them so create-data fails when it runs after update-data
(defn update-data [x y]
(go update x y))
;;======my file test=======
(deftest create-test
(testing "this should run first"
(is (= 20 create-data)))
(deftest create-test
(testing "this should run second"
(is (= 20 update-data)))
так я думал, создавая одно испытание для обеих функций будет заставить его работать, но это не делает.
(deftest test-create-update.
(testing "this should run second"
(is (= 20 create-data))
(is (= 20 update-data)))
Я хочу что-то, что будет работать обе функции, но будет работать Create-данные первого точно и независимо от результата (будь пройден или) будет работать с обновлениями данных. Мне нужно оба в моем тесте. Индивидуально они работают. но мне нужно автоматическое тестирование.
Я думаю, что 'clojure.test' просто захватывает все тестовые функции из пространства имен и не сохраняет порядок, в котором они были определены. Вы уверены, что ваш случай с несколькими выражениями 'is' в одном' testing' не работает? Я попробовал это, и он работает для меня (второй 'is' оценивается, даже если первый из них не работает). Кроме того, вы не вызываете 'create-data' и' update-data', а просто сравниваете их как объекты функций с номером 20. Не ставьте ваши тесты, которые требуют определенного порядка в один 'deftest', но вложены в разные' test' случаи? –
Я думаю, что самые деликатные случаи должны быть самодостаточными. Если вы хотите обеспечить соблюдение порядка, разве вы не думаете, что вам лучше положить все это в один раз? –