假设我有一个模拟特征 Foo:
trait Foo {
def op(x: String): Unit
}
我用这个模拟了这个界面
val mockedFoo = mock[Foo]
我希望方法 op 在我第二次调用它时抛出异常,例如
import org.specs2.mock.Mockito
import org.specs2.mutable.Specification
trait Foo {
def op(x: String): Unit
}
class DummySpec extends Specification with Mockito {
"dummy" should {
"test" in {
val mockedFoo = mock[Foo]
org.mockito.Mockito.doNothing().doThrow(new RuntimeException).when(mockedFoo).op(any[String])
mockedFoo.op("This one should work fine") should not(throwAn[Exception])
mockedFoo.op("This one should throw an exception") should throwAn[Exception]
}
}
}
有没有办法以 specs2 风格做到这一点?例如
mockedFoo.op(any[String]) returns Unit thenThrows new RuntimeException
但这不会编译。
谢谢!