我正在開發一個程序,該程序將爲初學者程序員提供一種遊戲。我打算提供一個字段,用戶可以根據需要編寫代碼(方法,類...)。當用戶想要提交代碼時,我會將文本字段的內容複製到.java文件中,調用編譯器來編譯這個類,然後我想用jUnit測試代碼是否工作正常。使用jUnit測試尚未創建的類/對象
那麼,我知道jUnit是用於開發目的,但我認爲它可能是非常有用的在這種情況下執行它。
現在的問題是,當我需要編譯我的程序時,應該被測試的類(用戶的代碼)不會在那裏。所以我不能只是叫
assertEquals("Wrong sum", 6, Foo.sum(4, 2));
,因爲它不會知道Foo類是什麼,因爲它永遠不會在compilatoin的時間在那裏 - 在用戶運行應用程序,並開始編碼之前。
我想我可以創建一個虛擬類,只是爲了編譯,但是當我需要真實的東西時,我將無法替換文件或寫入另一個文件,如Foo2.java,因爲FooTest.java只能用對象Foo操作....
我真的很感激你的建議傢伙!我能做些什麼來處理這種情況?
謝謝:)
你有沒有考慮過使用mockito - http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html – nbz 2014-10-08 16:59:12