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