Имитация насмешек над клиентом в реализации Junit

Я пытался имитировать имитацию клиентского вызова из служб в реализации весенней загрузки для написания тестовых примеров 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);

    }

}

Выше не работает, я новичок в имитации клиента, поэтому не уверен, как имитировать интерфейс фальшивого клиента.

Есть ли другой способ добиться того же, что указано выше.


person freaksterz    schedule 09.12.2018    source источник


Ответы (1)


Вероятно, он работает, я предполагаю, что ваш класс Person не определяет хэш-код и методы равенства? Если вы не определили хэш-код и методы equals, даже 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);
}
person John Stringer    schedule 09.12.2018