2
함수의 반환 값을 테스트하고 있습니다. 선호하는 방법은 둘 중 어느 것입니까? 테스트를 실행하면 더 자세한 설명 때, 지금, 테스트가 assert
문 및 오류 메시지를 필요로하지 않기 때문에 ExUnit은 어설 션/논박없이 패턴 일치에만 의존합니까?
test "extra verbose, using assert" do
{:error, reason} = MyModule.my_fun
assert reason == :nope
end
test "using pattern matching only" do
{:error, :nope} = MyModule.my_fun
end
나는 첫 번째를 좋아한다. Otoh, 줄 번호가
MatchError
이면 충분합니다.
경기에 주장 사용의 주요 단점은 당신이 테스트에서 바로 비교가 – Stuart
결과 대 왼쪽받지 않습니다 것은 어설'인가 아무것도? 패턴이 일치하면, 기본적으로 튜플'{: error, : nope}'가 진실인지 아닌지를 선언 할 것입니다. 패턴이 일치하지 않으면 여전히 'MatchError'가 있습니다. – carp
@ carp nope, 어떤 MatchError도 없을 것입니다. 'assert'는 특별히'='을 처리합니다. 지금 당장 해답에 예제 테스트 실패 결과를 추가했습니다. – Dogbert