[Scala] value scalatest is not a member of org

smlee·2023년 8월 17일
0

에러 일지

목록 보기
17/24
post-thumbnail

⚠️ 문제 상황


단언문과 테스트를 공부하면서 예제를 공부 중이었다. 하지만, assertResult라는 메서드를 연습 중이었는데 위와 같이 value scalatest is not a member of org라는 에러가 발생하였다.
분명 교재에서나, 구글에서 검색한 예제문에서는 모두 org.scalatest.Matchers.assertResult를 import 시켰었는데 왜 이런 오류가 발생했을까?

❗️문제 해결

필자는 터미널에서 Scala를 실행시키고 예제를 공부하고 있었다. 하지만, 관련 dependency들이 있어야 함을 여러 검색 결과를 통해 알게 되었다.


sudo sbt new scala/scalatest-example.g8이라는 커맨드를 사용한다.
이때, sudo를 반드시 빼놓으면 안 된다.

만약 sudo를 빼놓고 실행하면 위와 같은 디렉터리 생성 오류가 발생한다.
sudo로 제대로 실행 후 디렉터리가 생성 되었으면 해당 디렉터리로 이동한다.

해당 디렉터리에는 build.sbt라는 파일과 project, src라는 디렉터리들이 생성되었고 dependency가 제대로 작성되어 있는 것을 알 수 있다.

./src/main/scala 디렉터리에 테스트할 메서드/객체가 담긴 스칼라 파일을 작성하고, ./src/test/scala 디렉터리에 테스트 코드를 작성한다.
필자는 공부를 위해 테스트 코드를 작성했으므로 간단하게 작성하였다.
./src/main/scala/AddCalculator.scala

object AddCalculator extends App {
	def add(x:Int, y:Int) = x+y
}

./src/test/scala/AddCalculatorTest.scala

class AddCalculatorTest extends org.scalatest.funsuite.AnyFunSuite {
  test("test add calculator") {
    assertResult(7) {
		AddCalculator.add(3, 5)	
	
	}
  }
}

이렇게 작성하였다. 그 후, sudo sbt test라는 명령어를 실행한다.
(여기서도 sudo 키워드를 빼면 안 된다.)

실패하는 테스트의 경우 몇 번째 줄에서 실패했는지, 어떤 값을 통해 실패했는 지 알 수 있다.

📚 Reference

0개의 댓글