我有一個類FileGenerator,我正在寫一個測試應該做generateFile()方法如下:TDD:如何驗證從Java對象列表中進行的方法調用?
1)它應該調用靜態方法getBlockImpl(FileTypeEnum)上BlockAbstractFactory
2 )應該從子類方法getBlocks填充可變塊列表()
3)它應該從一個最終輔助類FileHelper傳遞字符串參數
4)調用靜態方法的CreateFile它應該調用每個運行方法BlockList中的BlockController
我正在嘗試使用TDD來測試我的方法的最後一個場景。我有一個實現Runnable的BlockController對象列表,我需要驗證每個對象是否調用run()方法。
這裏就是我想要做的事:
public class FileGenerator {
// private fields with Getters and Setters
public void generateBlocks() {
// 1,2 get the block manager that will return the BlockController list
blockManager = BlockAbstractFactory.getManager(fileType);
blockList = blockManager.getBlocks();
// create a file using FileHelper
FileHelper.createFile(path);
// What I want to test:
// for each BlockController in the blockList, call the run() method
}
}
我使用JUnit和的Mockito。在Mockito的文檔中,他們只展示瞭如何模擬列表並驗證List上的方法調用(如add(T),remove(T)等),而不是其對象。
任何想法我可以做到這一點?