Mockito - 使用参数模拟方法



我正在为一个接受参数的方法编写单元测试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/

相关内容

  • 没有找到相关文章

最新更新