我想对我的代码进行单元测试,而不依赖于在Google App Engine上启动并运行后端服务。无需创建我自己的每个类(例如Request工厂等)的实现的最佳方法是什么?

这是我的代码。我已经破解了Util类,以在运行单元测试时返回模拟MyRequestFactory实例。然后,该模拟工厂将返回MyRequest的模拟实现。
反过来,它具有create,update delete等方法的模拟实现。
问题是我需要执行更多的实体操作,最终会产生大量的模拟类。

有没有更简单的方法?您认为哪种模拟框架最合适?

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("");

最佳答案

我更喜欢Mockito进行模拟,因为它允许间谍和执行后期望/验证。

此外,Powermock允许模拟静态方法和调用构造函数。

09-26 09:44