Как проверить значения переменных с помощью Mockito - PullRequest
0 голосов
/ 04 апреля 2019

Я использую Mockito для тестирования, я могу смоделировать методы и проверить, генерируются ли какие-либо исключения, как я могу утверждать значение переменной из моего тестового класса

@Service
public class TaskImpl implements Task {

@Autowired
private Utils utils;

@Override
public void doSomeTask(String input, String oldId, String newId) {

    Long id = utils.getId(input);
    if(id == null) {
        throw new CustomException(CustomExceptionCode.ID_DOES_NOT_EXIST);
    }

    String code = utils.findCode(id, newId);
    if(StringUtils.isEmpty(code)) {
        throw new CustomException(CustomExceptionCode.NO_CODE_FOR_ID);
    }

    // some more stuff
    }
}


@PowerMockIgnore("org.jacoco.agent.rt.*")
@RunWith(PowerMockRunner.class)
@PrepareForTest({TaskImpl.class})
public class TaskImplTest {

    @InjectMocks
    private final TaskImpl taskImpl = PowerMockito.spy(new TaskImpl());

    @Mock
    private Util util;

    @Rule
    public final ExpectedException exception = ExpectedException.none();

    @Test
    public void doSomeTaskThrowsException() {
        when(util.getId(anyString())).thenReturn(null);
        exception.expect(CustomException.class);
        taskImpl.doSomeTask(anyString(), anyString(), anyString());
    }

    @Test
    public void doSomeTastCodeSuccess()  {
        when(util.getId(anyString())).thenReturn(1L);
        taskImpl.doSomeTask(anyString(), anyString(), "new_id");
        // I want to check here how to check {code} value is actually what I am expecting
        // Not only string but I want to check other types too
    }
}

так что во втором тесте я хочу Assert.assertEquals("expected", code);

Один способ, которым я мог бы сделать, это

String code = util.findCode(id, newId);

и затем проверьте

Assert.assertEquals("expected", code);

это правильно или есть какой-либо другой способ проверки переменных.

...