我在寫一個測試類來測試我的'ImporterService'類。該服務讀取一個InputStream並從其數據創建一個Object。 Object,在這個例子中是一個Builder類,在'ImporterService'類中被實例化。爲了測試我的'ImporterService'類,我需要驗證Builder類上的調用。爲此,我想使用Mocking框架,但是如何在'ImporterService'之外創建'Builder'對象的模擬實例?嘲笑內部實例化對象
我「ImporterService」類的方法是這樣的:
public Builder importFrom(BufferedReader reader) throws IOException {
String someValue = readFrom(reader);
Builder builder = new Builder(); // I need to mock this Builder object...
builder.someMethod(someValue); // to see of a method is called with the expected value
}
我在想移動的生成器類的創建成一個受保護的方法,我可以在測試的設置覆蓋。但是這個解決方案對我來說似乎不是很好,因爲'ImporterService'類泄漏了一些內部邏輯,並且可以用其他我不想要的類重寫方法。
如果使用好的模擬框架,你不需要在你的單元測試的另一個DI框架中。除非你正在測試你的佈線 – 2011-12-15 09:48:50