在Java中将测试数据从main移动到另一个类

时间:2011-12-04 19:07:24

标签: java

我已经用Java创建了一个会员记录系统,并且当前填充了main中的硬编码测试数据,但是希望将这个测试数据添加到一个单独的类中并调用该类。是否有一个单独的测试数据类是常见的或者这是在主要内容初始化的东西?您可以指点我的任何想法或来源?

当前的驱动程序类:

public static void main(String[] args) {

Member jane = new Member ("jane");
Member alex = new Member ("alex");
Member mike = new Member ("mike");

Set<Member> members = new HashSet<Member >();
members.add(jane);
members.add(alex);
members.add(mike);

我想拥有的是:

public static void main(String[] args) {

TestData tdata1 = new TestData();
tdat1.TestData(); 


Public Class TestData {

Member jane = new Member ("jane");
Member alex = new Member ("alex");
Member mike = new Member ("mike");

Set<Member> members = new HashSet<Member>();
members.add(jane);
members.add(alex);
members.add(mike);

2 个答案:

答案 0 :(得分:2)

您是否考虑过单元测试?您可以使用junit创建一个加载硬编码测试数据并测试它的测试方法。这使您的程序不受测试代码的影响(通过清理主程序)并让您继续执行测试。

或者,如何创建一个允许您将数据集文件加载到成员资格记录系统的小类?这样,您可以加载该文件(使用硬编码的测试值),并且在软件完成后,您仍然可以初始化记录。请仅在该功能有意义时才这样做!

答案 1 :(得分:0)

我不确定我明白你打算做什么,但我想这就像是:

public class Main {
    public static void main(String[] args) {

        TestData tdata1 = new TestData();
        tdat1.test(); 
    }
}

在TestData.java中:

public class TestData {

    public void test() {
        Member jane = new Member ("jane");
        Member alex = new Member ("alex");
        Member mike = new Member ("mike");

        Set<Member> members = new HashSet<Member>();

        members.add(jane);
        members.add(alex);
        members.add(mike);
    }
}

无论如何,您应该为每个操作执行JUnit测试。