我一直试图在Spring Boot实现中模拟来自Services的伪装客户端调用,以编写Junit测试用例。
//Service code
@Autowired
private PersonClient personClient;
//Using the personClient
public Person someMethod(){
//Interface defined with URL and all defination
Person person = personClient.getPerson();
}
//Service testing bean
@RunWith(MockitoJUnitRunner.class)
public Class ServiceTest{
@Mock
public PersonClient mockPersonClient;
@Test
public someTestClient(){
when(mockPersonClient.getPerson()).return(new Person("name",12));
Person person = mockPersionClient.getPerson();
assertEquals(new Person("name",12), person);
}
}
上面没有工作,我是伪装客户端的新手,因此不确定如何模拟伪装客户端接口。
还有其他方法可以实现上述目的。
答案 0 :(得分:2)
它可能正在工作,我假设您的Person类未定义哈希码并等于方法?如果您尚未定义哈希码和等于方法,甚至assertEquals(new Person(“ name”,12),new Person(“ name”,12))都会失败。
要使测试正常工作,您可以定义哈希码和等号,或者您始终可以将测试方法替换为:
@Test
public someTestClient(){
Person expectedPerson = new Person("name",12));
when(mockPersonClient.getPerson()).return(expectedPerson);
Person person = mockPersionClient.getPerson();
assertEquals(expectedPerson, person);
}