使用JUnit测试与main相同的类中的方法

时间:2011-07-06 19:01:32

标签: java eclipse junit

好的,所以在我们开始之前让我说我一直在谷歌上搜索我的问题的答案已经有一段时间了但是找不到合适的答案(关键词很棘手,因为我不断得到不相关的帖子和​​网站作为结果)。

现在,继续我有一个包含my main方法和许多其他函数的Java类。我想使用JUnit来测试这些函数,但我不能实例化一个主要的类,如果我只是尝试调用该函数我得到一个错误,说该函数在命名空间之外,即使两个文件都在同一个包中,尝试导入文件时出错。

无论如何使用JUnit来测试这些函数吗?

P.S。是的我知道你可以将它们放在一个新的类中,但是我认为创建一个新类只是为了测试或者放入两个用于解析用户输入的函数是不合适的,并且仍然存在问题。测试主要功能本身(并且编写一个主要方法仅用于测试并不罕见。)


所以这就是发生的事情。由于我不经常使用Java,所以我最终在类中创建了私有数据成员,但是将其视为C ++程序中的全局变量。因此,我在main中初始化它们,并没有考虑构造函数,因此实例化类的问题。当那不起作用我尝试了。形式,但由于方法引用了私有数据成员,我会在没有实例化类的情况下得到错误。感谢那些注意到构造函数的人。

3 个答案:

答案 0 :(得分:5)

你绝对可以创建一个包含main方法的类的实例,只要它当然有一个可访问的构造函数。

同样,您绝对可以使用MyClassName.myMethodName直接调用静态方法。

在类中使用main方法在Java语言本身方面完全不存在 no - 因此您可以像对待任何其他类一样对其进行测试。

答案 1 :(得分:0)

很奇怪。我刚刚在SomeClass内写了mainSomeClassTest类完全可以测试它。

答案 2 :(得分:0)

只是一个想法,您是否使用main方法将构造函数声明为类中的私有?如果你可以发布一些代码片段和你得到的确切错误消息,它会有很大的帮助。