2016-07-20 78 views
1

這將失敗並出現InitializationError。在同一個包中運行其他測試,所以我在我的代碼中做了一些愚蠢的事情。 Stacktrace顯示「找不到與[[Exactmatch]]匹配的測試」)。Mockito測試未能初始化

public class TestClassToTest { 
    @Mock 
    File mockOfAFile; 

    @Test 
    public void testAMethod(File mockOfAFile) { 
     MockitoAnnotations.initMocks(this); 
     given(fileMock.getName()).willReturn("test1"); 
     assertEquals("test1",ClassBeingTested.methodBeingTested(mockOfAFile)); 
    } 
} 

已經嘗試了一切,但對Mockito來說很新。我在這裏做什麼愚蠢的事情?

感謝

+0

你能嘗試刪除從你測試方法的簽名,並保持無參數'文件mockOfAFile'? – Abubakkar

+0

另外,你可以嘗試使用'@ UnitTest'註釋你的測試類 – Abubakkar

+1

可以告訴我們你是如何運行它們並附加實際的堆棧跟蹤? – Kurtymckurt

回答

2

我發現兩件事情來解決:

  1. @Test方法應該沒有參數
  2. 您需要另一個File情況下,所謂的fileMock

因此,這裏是更新後的代碼:

public class TestClassToTest { 

    @Mock 
    File mockOfAFile; 

    @Mock 
    File fileMock; // the new mock 

    @Test 
    public void testAMethod() { // no parameters 
     MockitoAnnotations.initMocks(this); 
     given(fileMock.getName()).willReturn("test1"); // here is the new mock used 
     assertEquals("test1",ClassBeingTested.methodBeingTested(mockOfAFile)); 
    } 
}