簡體   English   中英

如何使用JUnit和Mockito測試void方法?

[英]How do I test a void method using JUnit and Mockito?

我的void方法更改了類中的boolean變量值。 DI如何檢查?

我有:

  • 模擬類對象
  • 用適當的參數調用方法
  • 檢查了實例變量

但這不會改變實例變量的值。 我該怎么做呢?

ReferenceLettersBean rf = Mockito.mock(ReferenceLettersBean.class);
     rf.setBoolcheck(false);

Mockito.doNothing().when(rf).checkForDuplicates(anyString(),     anyString(), anyString());
         rf.checkForDuplicates("abcd@emal.com","abd@gmail.com","abcd@gmail.com");
assertEquals(true,rf.getBoolcheck());
  • 不要嘲笑你想要測試的課程。
  • 模擬與您要測試的類交互的類。

如果你想測試一個類中的字段從false變為true,你真正想要做的就是(我沒有你的實際構造函數,我只是猜測):

SomeDependency dependency = mock(SomeDependency.class);

// Make a REAL ReferenceLettersBean
ReferenceLettersBean bean = new ReferenceLettersBean(dependency);

// now make your test
rf.checkForDuplicates("abcd@emal.com","abd@gmail.com","abcd@gmail.com");
assertEquals(true,rf.getBoolcheck());

這個布爾值似乎是一個內部狀態。 除非您將其公開或通過影響另一種方法的行為來檢測,否則您無法直接使用單元測試進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM