«Неправильное использование сопоставителей аргументов», но я использую только сопоставители - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу протестировать следующий метод getRights:

public GetProductRp getRights(String aaId, String bbId, String ccId) {
    GetProductRp rp = (GetProductRp) webServiceTemplate.marshalSendAndReceive(createRq(aaId, bbId, ccId));
    return rp;
}


private GetProductRq createRq(String aaId, String bbId, String ccId) {
    GetProductRq rq = new GetProductRq();

    GetProductRqBody body = new GetProductRqBody();

    body.setaaId(aaId);
    body.setbbId(bbId);
    body.setccId(ccId);

    rq.setBody(body);

    return rq;
}

Это мой тестовый класс:

@RunWith(SpringRunner.class)
@SpringBootTest()
public class ClassTest {

@Autowired
private Class rightClass;
@MockBean
private WebServiceTemplate webServiceTemplate;

@Test
public void getRightsTest() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
    GetProductRp response = Helper.createProductRp("xx", "yy");

    Method mCreateRq = rightClass.class.getDeclaredMethod("createRq", String.class, String.class, String.class);
    mCreateRq.setAccessible(true);
    GetProductRq request = (GetProductRq) mCreateRq.invoke(rightClass, "12345678", "12345678", "1111");

    Mockito.when(webServiceTemplate.marshalSendAndReceive(request)).thenReturn(response);

    Mockito.when(rightClass.getRights(Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenReturn(response);

    Assert.assertNotNull(response);
}

Я получаю сообщение об ошибке, указанное в кратком описании выше, хотя я использую толькоMatchers (Mockito.anyString ()) ....

Есть идеи?

1 Ответ

0 голосов
/ 20 ноября 2018

Проблема может заключаться в том, что вы ставите @Autowired на private Class rightClass; и пытаетесь высмеять его метод.Если вы хотите смоделировать метод, то вы должны поставить @MockBean аннотацию как:

@MockBean 
private Class rightClass;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...