Java 用自己的主语言测试类是个好主意吗?

Java 用自己的主语言测试类是个好主意吗?,java,class,testing,Java,Class,Testing,在测试代码时,使用自己的main进行测试是一个好主意吗? 另一个选项是使用外部文件进行此测试 例如: Class Foo{ Foo(){/*...*/} public boolean met1(){/*...*/} //other metodes... //Tests public static void main(String args[]){ Foo f = new Foo(); //Test the correc

在测试代码时,使用自己的main进行测试是一个好主意吗? 另一个选项是使用外部文件进行此测试

例如:

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...
    }
}
这种技术的优缺点是什么。
也许有更好的方法来测试我没有提到的代码

这并不重要,但是在同一个类中使用main方法有一个好处,那就是可以在main方法中使用该类的私有静态类字段

例如:

public class Foo
{

    private static String someText = "blah blah";

    public Foo(){/*...*/}

    public static void main(String args[])
    {
         System.out.println(someText);
    }
}

这并不重要,但是在同一个类中使用main方法有一个好处,那就是可以在main方法中使用该类的私有静态类字段

例如:

public class Foo
{

    private static String someText = "blah blah";

    public Foo(){/*...*/}

    public static void main(String args[])
    {
         System.out.println(someText);
    }
}

如果您只想在代码完成时运行代码来检查结果,那么这是可以的。 但我更喜欢特殊的Main类,并从中调用这些方法(只是不要在许多类中使用垃圾代码)。
但是无论如何,测试要好得多。

如果您只想在代码完成时运行代码来检查结果,那么这是可以的。 但我更喜欢特殊的Main类,并从中调用这些方法(只是不要在许多类中使用垃圾代码)。
但无论如何,测试都要好得多。

如果这是一个可以真正实现自动化的测试,你应该使用一个外部文件,比如JUnit等。对运行所有测试、持续集成、用漂亮的绿色和红色线条报告等的大量支持

如果它是一个GUI元素,您希望能够显示并查看它的外观,或者手动单击places以查看发生了什么,那么可以使用main()。这样的评论


类似地,如果程序员可能想要测试和观察调试器中发生的事情很复杂,可以改变命令行参数等。使用main()也可以。这样评论。

如果这是一个可以真正实现自动化的测试,你应该使用一个外部文件,比如JUnit等。大量支持运行所有测试、持续集成、使用漂亮的绿色和红色线条进行报告等

如果它是一个GUI元素,您希望能够显示并查看它的外观,或者手动单击places以查看发生了什么,那么可以使用main()。这样的评论


类似地,如果程序员可能想要测试和观察调试器中发生的事情很复杂,可以改变命令行参数等。使用main()也可以。这样评论。

我认为除了让你的类变得比需要的更大之外,没有其他缺点。但是,我认为把形式化的测试作为一个框架来帮助你避免错误是浪费精力的。

< P>我不认为除了让你的课程比他们需要的大之外,还有什么不好的地方。但是,我认为把形式化的测试作为一个框架来帮助你避免错误是浪费精力的。

不确定这是不是很好的实践,但是它很有说服力。不确定这是否是一个好的练习,但它非常方便!我同意,这主要是谁在运行代码的问题。如果可行,您希望它们由持续集成服务器自动运行。在这些情况下,像JUnit这样的测试框架是最好的选择。另一个要考虑的问题是确保你不会用测试代码来分散你的生产代码。我同意,主要是谁在运行代码的问题。如果可行,您希望它们由持续集成服务器自动运行。在这些情况下,像JUnit这样的测试框架是最好的选择。另一件要考虑的问题是确保你不会用测试代码来分散你的生产代码。