Используя основной метод классов для отладки? - PullRequest
5 голосов
/ 29 октября 2008

Рекомендуется ли использовать метод main для проверки класса java / .net?

Я видел это рекомендованным в некоторых учебниках, но мне кажется, что использование инфраструктуры модульного тестирования имело бы больше смысла ...

Основной метод дает вам одну точку входа в класс, и вы можете проверить один аспект функциональности классов. Можно было бы предположить, что многие тестируют, но, похоже, не имеет смысла использовать Junit или Nunit.

Ответы [ 4 ]

2 голосов
/ 29 октября 2008

Одним очевидным преимуществом является то, что вы можете протестировать класс в whitebox. То есть вы можете проверить его внутренности (частные методы, например). Вы не можете сделать это с помощью юнит-тестов, и не хотите, они в первую очередь предназначены для тестирования интерфейса и поведения с точки зрения пользователей.

1 голос
/ 29 октября 2008

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

[EDIT] Чтобы уточнить, я не предлагаю, чтобы у каждого класса был статический метод main, который будет использоваться для интеграционных тестов, а вместо этого вы могли бы написать программу интеграционных тестов со статическим методом main, который бы выполнял ваш комплект интеграции. тесты.

0 голосов
/ 29 октября 2008

В Java принято иметь несколько основных методов и использовать их для тестирования, однако .NET не позволяет этого, если у вас есть две сети в одной программе, вы получите ошибка компилятора CS0017 и сообщит Вы Compile with /main to specify the type that contains the entry point.

Я должен сказать, что путь Java имеет для меня больше смысла.

0 голосов
/ 29 октября 2008

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

...