Симулировать клиента, внедряющегося в реализацию Junit - PullRequest
0 голосов
/ 09 декабря 2018

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

    }

}

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

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

1 Ответ

0 голосов
/ 09 декабря 2018

Это, вероятно, работает, я предполагаю, что ваш класс 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);
}
...