繁体   English   中英

JUnit 与 class 相同的测试方法

[英]Test methods in the same class as main with JUnit

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

现在,继续我有一个 Java class ,其中包含我的主要方法和许多其他功能。 I want to test these functions using JUnit but I can't instantiate a class that has main in it, if I simply try to call the function I get an error saying the function is outside the namespace even though both files are in the same package ,我在尝试导入文件时遇到错误。

有没有使用 JUnit 测试这些功能?

PS 是的,我知道您可以将它们放入一个新的 class 中,但我认为创建一个新的 class 只是为了测试或放入 2 个用于解析用户输入的函数并不过分,但仍然存在问题测试主要的 function 本身(编写一个主要的方法只是为了测试并不少见)。


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

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

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

就 Java 语言本身而言,在 class 中拥有一个main方法对它没有任何影响 - 因此您可以像测试任何其他 class 一样对其进行测试。

很奇怪。 我刚刚用main编写了SomeClass ,它完全可以通过SomeClassTest class 进行测试。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM