В моем понимании, тестирование кода - проверить правильность результатов, например калькулятор, мне нужно написать тестовый пример, чтобы проверить, является ли результат 1 + 1 равным 2.
Но я прочитал много тестовых примеров о проверке количества раз, когда вызывается метод. Я очень смущен этим. Самый лучший пример - это то, что я только что видел весной в действии:
public class BraveKnight implements Knight {
private Quest quest;
public BraveKnight(Quest quest) {
this.quest = quest;
}
public void embarkOnQuest() {
quest.embark();
}
}
public class BraveKnightTest {
@Test
public void knightShouldEmbarkOnQuest() {
Quest mockQuest = mock(Quest.class);
BraveKnight knight = new BraveKnight(mockQuest);
knight.embarkOnQuest();
verify(mockQuest, times(1)).embark();
}
}
Я действительно не знаю, почему они должны проверять, что функция embark()
называется один раз. Разве вы не думаете, что embark()
, безусловно, будет вызван после вызова embarkOnQuest()
? Или возникнут некоторые ошибки, и я увижу сообщения об ошибках в журналах, которые показывают номер строки ошибки, которые могут помочь мне быстро найти неправильный код.
Итак, что такое проверка, как выше?