Методы тестирования в том же классе, что и основной с JUnit - PullRequest
1 голос
/ 06 июля 2011

Хорошо, поэтому прежде чем мы начнем, позвольте мне заявить, что я уже давно гуглю и ищу ответ на свой вопрос и не смог найти подходящий (ключевые слова хитры, так как я продолжаю получать несвязанные посты и сайты как результаты).

Теперь, продолжая, у меня есть класс Java, который содержит метод main и ряд других функций. Я хочу протестировать эти функции с помощью JUnit, но я не могу создать экземпляр класса, в котором есть main, если я просто пытаюсь вызвать функцию, я получаю сообщение об ошибке, в котором говорится, что функция находится вне пространства имен, даже если оба файла находятся в одном пакете , и я получаю сообщение об ошибке при попытке импортировать файл.

Есть ли способ проверить эти функции с помощью JUnit?

P.S. Да, я знаю, что вы можете поместить их в новый класс, но я не думаю, что создавать новый класс просто для тестирования или ставить две функции, предназначенные для синтаксического анализа пользовательского ввода, - это излишне. тестирование самой основной функции (и нередко писать основной метод только для тестирования).


Так вот что случилось. Поскольку я не использую Java очень часто, я в конечном итоге создал частные члены-данные в классе, но относился к ним, как к глобальным переменным в программе на C ++. В результате я инициализировал их в main и не думал о создании конструктора и, следовательно, о проблеме с созданием экземпляра класса. Когда это не сработало, я попробовал. форма, но так как методы ссылались на закрытые члены данных, я бы получил ошибку, не создавая экземпляр класса. Спасибо ребятам, которые заметили конструктор.

Ответы [ 3 ]

5 голосов
/ 06 июля 2011

Вы абсолютно можете создать экземпляр класса, который содержит метод main, при условии, что у него, конечно, есть доступный конструктор.

Аналогично, вы абсолютно можете вызывает статический метод напрямую, используя MyClassName.myMethodName.

Наличие метода main в классе делает абсолютно нет разницу с ним с точки зрения самого языка Java - такВы можете проверить это так же, как и любой другой класс.

0 голосов
/ 06 июля 2011

Просто мысль, вы объявили конструкторы как частные в классе с методом main? Это очень поможет, если вы сможете опубликовать фрагмент кода и точное сообщение об ошибке, которое вы получаете.

0 голосов
/ 06 июля 2011

Очень странно.Я только что написал SomeClass с main внутри, и он отлично тестируется классом SomeClassTest.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...