使用 Mockito 模拟 Scala void 函数
Mocking Scala void function using Mockito
我为此找到了一些答案,但没有一个对我有用。
试图模拟 Apache Shiro Subject 接口登录方法,returns无效。
接口:
void login(AuthenticationToken token) throws AuthenticationException;
我试过了:
#1
val subject = mock[Subject]
doNothing().when(subject).login(new UsernamePasswordToken())
#2
val subject = mock[Subject]
doNothing().when(subject).login(any[UsernamePasswordToken])
#3
when(subject.login(any[UsernamePasswordToken])).thenAnswer(new Answer[Void]() {
override def answer(invocation: InvocationOnMock): Void = {
null:Void
}
我在登录时一直收到 NullPointerException。我的目标是围绕登录方法进行测试,并测试一些成功案例以及此方法引发异常的一些失败案例。
Mockito 中的默认行为是 return 如果您不 "stub" 特定方法则什么都不做。无需将 void() 函数强制设置为 doNothing()
,因为默认情况下它什么都不做。
我为此找到了一些答案,但没有一个对我有用。
试图模拟 Apache Shiro Subject 接口登录方法,returns无效。
接口:
void login(AuthenticationToken token) throws AuthenticationException;
我试过了:
#1
val subject = mock[Subject]
doNothing().when(subject).login(new UsernamePasswordToken())
#2
val subject = mock[Subject]
doNothing().when(subject).login(any[UsernamePasswordToken])
#3
when(subject.login(any[UsernamePasswordToken])).thenAnswer(new Answer[Void]() {
override def answer(invocation: InvocationOnMock): Void = {
null:Void
}
我在登录时一直收到 NullPointerException。我的目标是围绕登录方法进行测试,并测试一些成功案例以及此方法引发异常的一些失败案例。
Mockito 中的默认行为是 return 如果您不 "stub" 特定方法则什么都不做。无需将 void() 函数强制设置为 doNothing()
,因为默认情况下它什么都不做。