2017-12-06 1 views
0

Clojure 프로그램 테스트를 작성하는 방법을 배우기 시작했습니다. 복수의 어설 션을 가진 테스트가 있습니다 (is로 전화). 첫 번째 어설 션이 실패하는 즉시 테스트가 중단되기를 원합니다. 첫 번째 is이 실패하면 내가 모든 일이 실패 할,다중 어설 션을 사용한 Clojure 테스트

(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)))))) 

: 여기 내 테스트입니다.

+0

수정 해 주셔서 감사합니다. 닫기 괄호가 일치하는 여는 괄호 아래가 아니라 같은 줄에 있도록 코드를 다시 포맷하는 것을 알 수 있습니다. 나는 Clojure에 익숙하지 않으므로 아마 잘못했을 것이다.하지만 개개의 줄을 복사해서 붙이기가 훨씬 쉬워지기 때문에 여는 것 아래에 닫는 괄호가 좋다. 또한 코드를 편집 할 때 여는 괄호와 닫는 괄호를 일치시키는 것이 중요하며 모든 편집기가 나를 강조 표시하지는 않습니다. – Robert3452

+0

이 게시물을 확인해보십시오 https://adambard.com/blog/acceptable-error-handling-in-clojure/ 테스트에 관한 것이 아니지만 성공할 경우 일반을 수행하는 방법에 대해 이야기합니다 ... 성공하면 ... -> 기본적으로 오류 모나드입니다. –

답변

2

가장 간단한 방법은, 그러나, 나는 복잡성이 여분의 비트가 필요 있도록 테스트를 재구성하려고 할 가능하면 그냥 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)))))) 

의 다른 테스트를 래핑하는 것입니다.

관련 문제