나는 특성의 가치를 조롱하고 싶다. 예를 들어,이 코드에서 발 baz
조롱하기 :스칼라 모크로 특성의 가치를 조롱하다
trait Foo {
def bar(): Int
val baz: Int
}
val fooMock = mock[Foo]
(fooMock.bar _).expects().returning(5)
(fooMock.baz _).expects().returning(6) //doesn't compile
doSomeThing(fooMock)
내 시험에서이 문제를 해결하려면, 내가 푸 확장 한을, 다음과 같은 방식으로 baz
을 구현 :
trait FooTest extends Foo {
override val baz: Int = 5
}
val fooMock = mock[FooTest]
(fooMock.bar _).expects().returning(6)
doSomeThing(fooMock)
그러나이 나는 못생긴 것이고, 나는 scala mock으로 이것을하는 더 표준적인 방법이 있기를 바랬다.
나는이 question에 대한 답을 본 적이 있지만 특성에 def
에 val
을 변경해야하고, 내가이 지원되지 않는 발
내가 프록시 모의 객체를 인식하지 않았다 : 예를 들어, ScalaMock 테스트 스위트를 참조하십시오. 테스트 파일에는 좋은 예제가 있지만 그것에 관한 문서가 있습니까? – lev
죄송합니다. 그러나 프록시 모의 문서는 (본인이 알다시피) 바닥이 얇습니다. 좋은 점은 매크로 기반 모의 객체보다 훨씬 간단하다는 것입니다. 따라서 테스트 파일의 예제는 "it"입니다 :-) –