我在編程應用程序,我需要模擬文件來測試它。我下面的代碼:EasyMock和Java中的文件
@Test
public void testPostMail() throws Exception
{
Emailer instance = new Emailer();
instance.setRecipientsFromFile(new File("list.txt"));
}
的問題是,我不希望依賴於文件在我的硬盤驅動器(當然我可以將文件與適當的內容和測試後刪除它,但我想用EasyMock來完成)。
我試圖導入org.easymock.classextension.EasyMock和使用它,但:
1)我仍然得到錯誤 「文件不是一個接口」
2)classextension.EasyMock已過時,所以我應該只使用了EasyMock
我不工作了EasyMock代碼:
@Test
public void testSetReceipientsFromFile() throws Exception
{
File file = EasyMock.createMock(File.class);
FileReader in = EasyMock.createMock(FileReader.class);
BufferedReader br = EasyMock.createMock(BufferedReader.class);
EasyMock.expect(new FileReader(file)).andReturn(in);
EasyMock.expect(new BufferedReader(in)).andReturn(br);
EasyMock.expect(br.readLine()).andReturn("[email protected]");
EasyMock.expect(br.readLine()).andReturn("[email protected]");
EasyMock.replay(file, in, br);
EasyMock.verify(file, in, br);
// ...
}
編輯:我想知道從EasyMock的改變的Mockito,因爲我聽到更多有利的意見。
如果你不依賴於EasyMock的,開始使用的Mockito。它可以嘲笑具體的課程。 – 2012-04-18 16:07:35
你爲什麼試圖測試廣泛使用的API?這當然很好。你應該測試你的代碼。的 – 2012-04-18 16:47:54
可能重複的[使用懲戒具體類EasyMock的](http://stackoverflow.com/questions/1249317/mocking-a-concrete-class-using-easymock) – 2014-04-02 09:09:45