테스트를 작성할 때 실패 테스트를 작성하는 것이 성공테스트를 작성하는 것보다 더욱 중요합니다.실패 경로는 대개 throw exception으로 처리되므로 ScalaTest는 이를 위한 테스트 방법을 제공해줍니다. assertThrows가장 기본적인 exception 테스트 방법입니다.assertThrows 함수 내부에서 exception이 throw 되면 exception의 타입을 검사합니다.assertThrows[ArithmeticException] { 5 / 0} thrownByshould나 must matchers에서 제공해주는 방법으로 exception을 저장하고 추가적인 검증도 진행이 가능해 assertThrows 보다 더욱 활용성이 높은 테스트 방법입니다. // an [T] 를 통해 어떠한 ..
either
ScalaTest는 Scala에서 기본적으로 제공해주는 타입인 Option, Either에 대한 테스트도 지원해줍니다.이 역시 간편하게 trait 형태로 제공해주어 필요할경우 상속받아 사용하면 됩니다. Option testOption 테스트를 위해서 OptionValues trait를 지원해줍니다.해당 trait를 상속받으면 Option 타입에 implicit function으로 value 함수를 신규로 지원해주어 이를 통해 assertion 비교를 진행하면 됩니다. Option의 값을 비교하기 위해 간단히 get을 사용하면 되지 않나 얘기하실 수도 있는데 None에 get을 실행하면 NoSuchElementException이 던져져서 테스트가 실패하지만 어느 테스트에서 실패했는지 StackDepth를 ..