4
我找到了一些答案,但沒有任何工作適合我。使用Mockito嘲笑Scala void函數
試圖模擬Apache Shiro主題接口登錄方法返回void。
接口:
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中的默認行爲是不返回任何東西,如果你不「存根」一個特定的方法。也就是說,你是否嘗試刪除整個'doDonthing()...「行? – marios
是的,所以我沒有看過類似的東西,但留下那條線作爲模擬(主題)給我NPE – Barry
考慮()as []打字我的手機 – Barry