Podczas korzystania z clojure.test's use-fixture, czy istnieje sposób przekazania wartości z funkcji urządzenia do funkcji testowej?Jak przekazać wartość z urządzenia do testu za pomocą clojure.test?
Odpowiedz
Kilka dobrych wyborów to wiązanie dynamiczne i with-redefs
. Można powiązać var z nazw testu w urządzeniu, a następnie używać go w definicji testu:
core.clj:
(ns hello.core
(:gen-class))
(defn foo [x]
(inc x))
test/hello/core.clj:
(ns hello.core-test
(:require [clojure.test :refer :all]
[hello.core :refer :all]))
(def ^:dynamic *a* 4)
(defn setup [f]
(binding [*a* 42]
(with-redefs [hello.core/foo (constantly 42)]
(f))))
(use-fixtures :once setup)
(deftest a-test
(testing "testing the number 42"
(is (= *a* (foo 75)))))
można powiedzieć, że to działa, porównując bezpośrednio wywołanie testu, który nie korzysta z urządzeń, do nazywając ją poprzez run-tests
:
hello.core-test> (a-test)
FAIL in (a-test) (core_test.clj:17)
testing the number 42
expected: (= *a* (foo 75))
actual: (not (= 4 76))
nil
hello.core-test> (run-tests)
Testing hello.core-test
Ran 1 tests containing 1 assertions.
0 failures, 0 errors.
{:test 1, :pass 1, :fail 0, :error 0, :type :summary}
To podejście działa, ponieważ urządzenia zamykają się nad testami, które uruchamiają, chociaż nie są w stanie bezpośrednio wywoływać wywołań funkcji testowych (zwykle), więc sensowne jest używanie zamknięć do przekazywania informacji do kodu testowego.
Być może nie jest to bezpośrednia odpowiedź, ale jeśli oprawa była :each
uchwyt tak, czy można tolerować to jest, można po prostu glina :each
Oprawa się i utworzyć set-up
funkcję powrocie danym państwie i nazywają to jako pierwszy linia twojego testu, zamiast używania urządzenia. To może być najlepsze podejście w niektórych okolicznościach.
(defn set-up [] (get-complex-state))
(deftest blah
(let [state (set-up)]
(frobnicate)
(query state)
(tear-down state)))
- 1. Kod testu urządzenia z WatchService
- 2. Jak sformatować wartość zmiennoprzecinkową za pomocą formatu waluty urządzenia?
- 3. Jak wykrywać orientację urządzenia za pomocą JavaScript?
- 4. jak przekazać argument do testu junit androida (sparametryzowane testy)
- 5. Jak przekazać dane z UnitTest do testu LoadTest?
- 6. Jak przekazać parametry do testu Junit z Ant?
- 7. Przekazywanie tablicy do PHP za pomocą testu POST z iOS
- 8. Wbudowany zookeeper do testu urządzenia/integracji
- 9. Jak przetestować EXE za pomocą testu Google?
- 10. Jak wysłać wiadomość do urządzenia za pomocą C2DM z serwera uwierzytelnionego za pomocą OAuth2?
- 11. Jak identyfikować urządzenia za pomocą udev
- 12. Jak przekazać flagę kompilacji do przetestowania początkowego testu kompilatora?
- 13. Jak przekazać ArrayList za pomocą putStringArrayListExtra()
- 14. Jak uzyskać dostęp do urządzenia Kinect za pomocą Java?
- 15. Jak przekazać identyfikator za pomocą funkcji Html.BeginForm()?
- 16. Jak przekazać wartość ARG do ENTRYPOINT?
- 17. Jak przekazać element za pomocą TypeScript/jQuery
- 18. Jak przekazać wartość parametru do a4j: jsFunction
- 19. Jak przekazać wartość wejściową do komponentu nadrzędnego
- 20. jak przekazać parametry niestandardowe do klasy testu szarańczy?
- 21. Jak skonfigurować urządzenia Doctrine2 podczas testowania za pomocą PHPUnit?
- 22. Jak przekazać argument zdarzenia do polecenia za pomocą wyzwalaczy?
- 23. Wiosna, jak przekazać wiadomość do podłączonych klientów za pomocą websockets?
- 24. Jak przekazać wartość enum do @ Html.ActionLink
- 25. Jak przekierować z urządzenia przechwytującego Axios za pomocą Routera V4?
- 26. Pisanie testu urządzenia dla Play websockets
- 27. przekazać model z widoku do kontrolera za pomocą html.actionlink
- 28. Jak przekazać właściwość integracji do pliku wsadowego za pomocą CruiseControlNet?
- 29. Jak generować urządzenia z bazy danych za pomocą SqlAlchemy
- 30. Jak przekazać tablicę obiektów javascript do php za pomocą POST