【问题标题】:Skipping inner methods in Mockito在 Mockito 中跳过内部方法
【发布时间】:2016-06-23 18:45:50
【问题描述】:

我正在尝试使用 mockito 测试以下方法。我想在执行class.getUserWishList("abc@gmail.com")时跳过getProfileItemFinder().retrieveEmailRecipient(email)方法调用;

我已经尝试了下面的代码,但是每当我尝试运行代码时,我都会在 doReturn 处遇到 mockito 异常。您能否建议我做错了什么。

示例模拟方法:

profileItemFinder = spy(new TestProfileItemFinder());
doReturn(profileItem).when( profileItemFinder.retrieveEmailRecipient(email));

原始方法:

public List<Map<String, Object>> getUserWishList(String email) {
    // JSONArray profileGiftList = new JSONArray();
    ---------------------------------------------
    -----------------------------------------------
    if (email != null) {

        RepositoryItem profileItem = getProfileItemFinder().retrieveEmailRecipient(email);

        if (profileItem != null) {
      ----------------------------------
      --------------------------------

    }

            }
        }
    }

    ---------------------------

}

【问题讨论】:

  • 有什么异常?
  • 我得到了问题 profileItem 是一个 atg 存储库项目,它没有正确初始化。

标签: java unit-testing mocking atg


【解决方案1】:

假设 email 和 profileItem 在上面正确定义,现在代替:

doReturn(profileItem).when( profileItemFinder.retrieveEmailRecipient(email));

在下面尝试并检查一次,

doReturn(profileItem).when( getProfileItemFinder().retrieveEmailRecipient(email));

【讨论】:

  • 得到问题 profileItem 是一个 atg 存储库项目,它没有正确初始化。感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多