为什么即使它在语法上正确,这个powermock也不会工作?

时间:2014-12-22 14:02:29

标签: java mocking mockito powermock

我试图用电力模拟来测试我的课程

这是我的班级:

 public Basket createBasket(Basket basket) {
        if (LOGGER.isInfoEnabled()) {
            LOGGER.info("In BasketInformationServiceImpl.createBasket : [" + basket.toString() + "]");
        }
        try {
            if (StringUtils.isBlank(basket.getBasketAdditionsAllowedInd())) {
                basket.setBasketAdditionsAllowedInd("Y");
            }

这是我的测试:

public void testCreateBasketCallsSetBasketAdditionsAllowedIndInBasket(){
        PowerMockito.mockStatic(StringUtils.class);
        when(StringUtils.isBlank(mockBasket.getBasketAdditionsAllowedInd())).thenReturn(true);
        basketInformationServiceImpl.createBasket(mockBasket);
        verify(mockBasket,times(1)).setBasketAdditionsAllowedInd(anyString());
    }

我得到的错误是:

org.mockito.exceptions.missing.WrongTypeOfReturnValue;
Boolean cannot be returned by getBasketAdditionsAllowedInd()
getBasketAdditionsAllowedInd() should return string

有谁知道为什么我会收到这个错误以及如何克服它?

P.S。使用power mock作为StringUtils是一个静态类

1 个答案:

答案 0 :(得分:0)

你有没有在其他地方嘲笑mockBasket.getBasketAdditionsAllowedInd?

如果是这样,请尝试将违规行拆分为两部分。

String allowedInd = mockBasket.getBasketAdditionsAllowedInd();
when(StringUtils.isBlank(allowedInd)).thenReturn(true);

你为什么要嘲笑一个静态类?