在测试代码时,使用自己的主程序进行测试是个好主意吗? 另一种选择是使用带有此测试的外部文件。
一个例子:
Class Foo{
Foo(){/*...*/}
public boolean met1(){/*...*/}
//other metodes...
//Tests
public static void main(String args[]){
Foo f = new Foo();
//Test the correctness of data...
boolean r = f.met1();
//check the result...
}
}
这项技术的优点和缺点是什么? 也许有更好的方法来测试我没有提到的代码。
答案 0 :(得分:3)
如果它是一个真正自动的测试,你应该使用一个外部文件,就像JUnit一样。对运行所有测试,持续集成,以及绿色报告的大量支持和红线等...
如果它是一个GUI元素,您希望能够调出并查看它的外观,并且可能手动点击地点以查看发生的情况,那就是o.k.使用main()。这样评论。
同样,如果程序员可能想要测试并观察调试器中发生的事情是复杂的,那么改变命令行args等等,这是o.k.使用main()。这样评论。
答案 1 :(得分:1)
如果您只想在完成代码时运行代码以检查结果,则可以。 但我更喜欢特殊的Main类并从中调用这些方法(只是在许多类中没有垃圾代码)。 但无论如何JUnit测试要好得多。
答案 2 :(得分:0)
这并不重要,但在同一个类中使用main方法有一个好处,那就是你可以在main方法中使用类的私有静态类字段。
例如:
public class Foo
{
private static String someText = "blah blah";
public Foo(){/*...*/}
public static void main(String args[])
{
System.out.println(someText);
}
}
答案 3 :(得分:0)
除了让你的课程比他们需要的更大,我认为没有任何其他缺点。但是,我认为应该将这种浪费的努力用于编写正式化测试,作为可以帮助您避免错误的框架的一部分。