JUnitでstatic関数をMock化したいのですが、うまくMock化できずに困っています。
★の箇所でorg.mockito.exceptions.misusing.InvalidUseOfMatchersExceptionが発生します。
static化していない☆の箇所は、正しくMock化できているので、
そもそも、static関数は、Mock化できないのでは?と疑っています。
何かご存じの方がいれば、教えていただけないでしょうか。
JUnitソース
MockitoSampleTest.java
1import static org.mockito.Matchers.*; 2import static org.mockito.Mockito.*; 3 4import org.junit.Before; 5import org.junit.Test; 6import org.mockito.InjectMocks; 7import org.mockito.Mock; 8import org.mockito.MockitoAnnotations; 9public class MockitoSampleTest { 10 11 @Mock 12 private SampleB sampleBMock; 13 14 @Mock 15 private SampleC stat; 16 17 @InjectMocks 18 private SampleA sampleA = new SampleA(); 19 20 @Before 21 public void setup() { 22 MockitoAnnotations.initMocks(this); 23 } 24 25 @Test 26 public void test1() { 27 28 when(sampleBMock.getName((Integer)anyObject())).thenReturn("mock");//☆ 29 30 String ret = sampleA.createName(); 31 } 32 @Test 33 public void test2() { 34 35 when(SampleC.splitString((String)anyObject())).thenReturn("aa:bb");//★ 36 37 String aa = SampleC.splitString(":"); 38 } 39}
テスト対象クラス
public class SampleA { private SampleB sampleB; public String createName() { String ret = sampleB.getName(1); return ret; } }
public class SampleB { public String getName(Integer id) { String name = null; if (id == 1) { name = "test1"; } else { name = "other"; } return name; } }
public class SampleC { static public String splitString(String str){ return str==null?"":str.split(":")[0]; } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/28 02:47