试图使用mockito对一个函数进行junit测试,该函数需要调用同一类的另一个函数,得到org.openest4j.A



假设我有两个这样的函数:(我不想共享实际的代码,它非常巨大(

public class EmailService{
String addressList1 = "test1@gmail.com,test2@gmail.com";
public String[] getAddressList(String addressList){
return addressList.split(",");
}
public int getNumber(){
for (String address : getAddressList(addressList1))
{
if (address.equals("test1@gmail.com")){return 1;}
}
return 0;
}
}

我在测试getNumber((函数时尝试了这个:

EmailService emailService1 = new EmailService();
EmailService emailService2 = Mockito.spy(emailService1);
String deliveryAddress = "test1@gmail.com,test2@gmail.com";       
doReturn(deliveryAddress.split(",")).when(emailService2).getAddressList(deliveryAddress);
assertEquals(EmailService2.getNumber(), 1);

但我得到了:org.openest4j.AssertionFailedError:空

我找到了答案。

由于addressList1是一个局部变量,所以在调用getNumber函数之前,我必须设置它的值。

ReflectionTestUtils.setField(emailService2, "addressList1","test1@gmail.com,test2@gmail.com");

最新更新