我的讲师之前曾提到这一点,但我真的不明白为什么会这样。有人能解释一下吗?
我们正在编写一个程序来计算素数的数组列表,我们必须使用JUnit来确保这个arraylist的所有成员都是素数。为什么我不能使用main来测试这个类?
非常感谢:)
答案 0 :(得分:3)
好的,这些答案在很大程度上过于复杂。我认为你的问题更为根本。和它非常好的一个
答案是,当你成为一名java开发人员并开始编写大量的代码,这些代码随着时间的推移而得到更新/修复,那么它就会有一个单独的测试插件,可以自动从代码外部对你的代码运行测试检查它是否仍以您期望的方式工作。这意味着您可以出于任何原因修复/调试代码的不同方面,然后您的老板走过去,并询问代码是否仍然执行客户端自修复以来的操作?没有复杂性您可以在没有复杂的主要错误语句的情况下回答他,这些错误语句与正常的程序输出混合在一起(并且在非测试条件下减慢代码速度),但是使用一个漂亮的绿色junit条表示它仍然有效。在开发大型项目并且需要进行数百次测试之前,您不会看到它的价值。此外,junit还有许多其他技巧......
答案 1 :(得分:1)
因为JUnit提供了一个main
来调用你在类中提供的函数。您仍然可以拥有自己的main
功能;它们只是在你运行JUnit时不会被使用。您可以使用main
函数单独测试自己的类,但使用JUnit有一些优点,如org.life.java的答案所述。
答案 2 :(得分:1)
你可以,它不会被推荐。如果您编写单元测试来测试它,那么您可以使用junit测试运行器来运行测试并生成一个报告,指示它是通过还是失败。如果您不这样做,那么您将需要编写自己的报告机制。
单元测试通常具有以下结构:
你的情况类似,因此是使用junit的好选择。
可用的单元测试API为您提供了有用的实用程序,您通常需要自己编写代码。
为什么不尝试这两种方法并亲自看看。
答案 3 :(得分:0)
在单元测试中,您不会测试任何整体。单元测试通常必须测试UNIT方法。所以你应该编写计算数组的方法,并使用Junit来测试方法。
main方法只是一个入口点,它“定义”过程的流程。在单元测试中,我们不担心流量。我们只是在单位上的forcus。程序流程使用系统/组件测试进行验证,而不是通过单元测试进行验证。
答案 4 :(得分:0)
答案 5 :(得分:0)
请参阅:org.junit.runner.JUnitCore.main(String...)
,类似的东西是潜在的。