2
Я новичок в Mockito и не могу получить базовый метод anyInt()
. Что мне не хватает? Вот мой тест.Mockito anyInt не работает
public class SpanPainterTest {
@Test
public void simpleTest() {
SpannableString mockSpanString = mock(SpannableString.class);
SpanPainter painter = new SpanPainter();
painter.applyColor(mockSpanString);
verify(mockSpanString).charAt(anyInt());
verify(mockSpanString).equals(anyInt());
}
}
Это класс живописца.
public class SpanPainter {
public SpannableString applyColor(SpannableString span) {
span.charAt(7);
span.equals(0);
return span;
}
}
Когда я закомментировать строку «verify...charAt(anyInt()));
», то тест проходит, так anyInt()
работы по методу equals()
.
Знаете ли вы, что делает функция charAt? Он возвращает значение в данной позиции. Что вы пытаетесь проверить? – Byron
Я пытаюсь проверить, вызывает ли метод applyColor() метод charAt() с любым целым числом. Мой реальный тест на самом деле более сложный http://stackoverflow.com/questions/31973481/android-junit-tests-cant-call-any-android-api Однако на данном этапе я просто хотел бы знать, может ли anyInt быть проблема. – flobacca
Этот 'span.charAt (7);' не изменяет объект span каким-либо образом, поэтому нет возможности его проверить. Вы не можете знать, был ли вызван метод для объекта, если он не изменит его состояние, и вы проверите изменение состояния. – Byron