我想單元測試我的代碼,而不依賴後端服務在我的谷歌應用程序引擎上運行並運行。什麼是最好的方式來實現這一點,而不必創建我自己的實現像請求工廠等每個類。刪除單元測試的依賴關係
這是我的代碼。我在運行單元測試時已經攻擊了Util
類以返回模擬MyRequestFactory
實例。這個模擬工廠然後返回MyRequest
的模擬實現。
這反過來具有創建,更新刪除等方法的模擬實現。 問題是我有更多的實體,我需要做到這一點,並將結束與大量的模擬類。
有沒有更簡單的方法?你認爲哪種模擬框架最適合?
MyRequestFactory requestFactory = Util.getRequestFactory(mContext,
MyRequestFactory.class);
final MyRequest request = requestFactory.myRequest();
BookProxy bookProxy = request.create(BookProxy.class);
bookProxy.setDescription(bookDescription.getText().toString());
bookProxy.setName(bookName.getText().toString());
Log.i(TAG, "Adding book" + bookProxy.toString());
Request<bookProxy> sendRequest = request.updateBook(bookProxy);
sendRequest.fire();
bookName.setText("");
bookDescription.setText("");
到目前爲止你寫了什麼樣的測試? – mikej
我使用Robolectric對我的Activity執行了一些非常基本的測試。例如測試,當我點擊「添加書籍」按鈕時,一本新書被髮送到服務器並添加到數據庫中。爲了讓我測試這個,我嘲笑了bookProxy類,它實現了一個只保留本地地圖的實現,並從這個內部地圖添加刪除等,而不是調用App引擎服務。問題是創建模擬所涉及的工作遠遠多於其他所有工作。 – MayoMan