Как выполнить юнит-тест метода с параметрами перечисления? - PullRequest
4 голосов
/ 12 апреля 2011

Я использую junit и EasyMock для модульного тестирования проекта, над которым я работаю.Однако я столкнулся с проблемой.У меня есть несколько методов, у которых есть параметр, который является перечислением.

Я столкнулся с java.lang.NullPointerException при попытке смоделировать перечисление, и кажется, что перечисления просто не могут быть смоделированы.Больше информации я нашел здесь:

http://download.oracle.com/javase/tutorial/java/javaOO/classvars.html

Есть ли какой-нибудь хороший способ для модульного тестирования этого метода без насмешек по перечислению ??

Спасибо!

РЕДАКТИРОВАТЬ: Петер Török был прав!Я полностью просматривал тот факт, что я мог просто вставить что-то для перечисления.Например:

public void methodName (String description, Location buildingLocation) {

где Location - мое перечисление, я могу вызвать метод следующим образом:

methodName ("здесьмое описание ", Location.DENVER);

1 Ответ

13 голосов
/ 12 апреля 2011

Что содержится в вашем enum, что вам нужно для этого? Почему вы не можете просто использовать сами доступные значения?

Так как enum s (предполагается, что) не имеют состояния и являются неизменяемыми, они должны быть легко доступны для модульного тестирования, у вас не должно быть проблем с их созданием, они не должны иметь (изменяемого) глобального состояния и не должны иметь внешнего зависимости, которые затрудняют их использование в модульных тестах.

Неудачное выполнение любого из вышеперечисленных будет скорее признаком проблемы с дизайном, чем проблемой модульного тестирования.

...