JMock ожидания от одного различия
Есть ли разница в использовании one() или oneOf() в JMock?
Шпаргалка говорит, что:
oneOf = Вызов ожидается только один раз.
точно (n).of = Вызов ожидается ровно n раз. Примечание: одно удобное сокращение точно (1).
В тестах я вижу использование одного, а в другом - одно. Вопрос в том, есть ли какая-либо разница между этими ключевыми словами или это означает одинаковую вещь.
В упомянутом ранее шпаргалке есть также пример:
oneOf (calculator).add(1, 1); will(returnValue(2));
oneOf (calculator).add(2, 2); will(returnValue(5));
Что, вероятно, говорит, что oneOf означает, что я ожидаю, что может быть больше вызовов метода add, и в этом случае есть два вызова (один из них с параметрами 1 и 1, а второй с параметрами 2 и 2).
Но ровно один (точно) (1). Точно может означать, что в одном тестовом методе я ОЖИДАЮ ТОЛЬКО ОДИН вызов этого метода.
Может быть, это просто мое неправильное понимание определения.
1 ответ
Там нет различий. oneOf(mockObject)
это просто псевдоним для exactly(1).of(mockObject)
,
Взгляните на исходный код AbstractExpectations.java