我正在为一个接受参数的方法编写单元测试id
如下所示:
public void searchid(String id) {
Document doc = Repository.findDocument(id); //returns a document
if (doc == null) {
System.out.println("id missing");
} else {
String stringRecord = doc.asJsonString(); //converting doc to string
在这里Repository.findDocument(id)
返回一个文档。 在我的单元测试中,我从src/test/resources
获取 JSON 文件。那么,我如何模拟Repository.findDocument(id)
,以便从我的资源中获取文件?
谢谢
您可以尝试在单元测试方法中模拟Repository.findDocument(id)
调用。
Mockito.when(Repository.findDocument(Mockito.isA(String.class))).thenReturn(Mockito.mock(Document.class));
这将在进行Repository.findDocument(id)
调用时返回模拟文档对象。
可测试性的关键是你有一个字段repository
,它被构造函数注入到你的类中。通过这种方式,您可以轻松地用假实例(例如模拟模拟)替换真实存储库。
我知道,学习如何编写可测试代码的最佳来源是 http://misko.hevery.com/code-reviewers-guide/