首页 文章

在Junit实现中假装客户端嘲笑

提问于
浏览
0

我一直试图在Spring引导实现中模拟来自Services的feign客户端调用来编写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);

    }

}

以上不起作用,我是假装客户端的新手,因此不确定如何模拟假装客户端界面 .

有没有其他方法可以实现上述相同的事情 .

1 回答

  • 1

    它可能正在工作,我假设你的Person类没有定义hashcode和equals方法?如果你还没有定义hashcode和equals方法甚至assertEquals(new Person(“name”,12),new Person(“name”,12))将会失败 .

    要使测试正常工作,您可以定义hashcode和equals,或者您始终可以使用以下命令替换测试方法:

    @Test
    public someTestClient(){
        Person expectedPerson = new Person("name",12));
        when(mockPersonClient.getPerson()).return(expectedPerson);
        Person person = mockPersionClient.getPerson();
        assertEquals(expectedPerson, person);
    }
    

相关问题