2013-04-02 190 views
-2

我正在使用TestNG在java中進行單元測試(由其他學生編寫的代碼)。問題是我無法在代碼中嘲笑對象,因爲每個函數都在使用ArrayList的ArrayList(arrayList下的值是ArrayList的對象)。請爲我推薦任何用於嘲笑或任何好方法的工具,我嘗試了easyMock和其他方法,並且遇到了同樣的問題。JAVA-單元測試

+0

爲什麼這會阻止你嘲笑?也許你可以舉一個例子來說明你的問題? – femtoRgon

+2

儘管這是一種設計氣味,但我不認爲它會阻止你嘲笑該方法。向我們展示要測試的代碼,您嘗試的代碼以及獲得的錯誤。 –

+0

我沒有得到任何錯誤.......大量輸入變量,並且無法找到所有變量.. –

回答

1

您正在測試的代碼的設計似乎非常可疑,但不應阻止您對其進行測試。僅僅因爲你正在寫一個測試並不意味着你需要模擬的一切。您可以創建你需要事先傳遞對象,然後把它送給你正在測試的方法:

@Test 
public void testStuff() { 
    List outerList = new ArrayList(); 
    List innerList = new ArrayList(); 
    innerList.add("something"); 
    outerList.add(innerList); 
    someObject.crazyMethod(outerList); 
} 

需要有某種形式的文件在您的同學介紹瞭如何調用他的代碼,以便您可以知道要傳入的內容。如果他堅持讓他的對象叫做瘋狂的話,那不應該是你的錯。

我對另一個問題的答案是什麼,這個問題涉及何時模擬以及何時不模擬here