我想对我的代码进行单元测试,而不依赖于在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允许模拟静态方法和调用构造函数。