使用Java

时间:2016-10-30 13:48:11

标签: java unit-testing object static

我希望能够测试我的应用程序,从我读过的内容中,最好通过创建一个类来测试应用程序。我希望测试类应该是我可以使用BlueJ运行而没有任何错误。

我有三个班级(不包括考试班)......

1。 MyMainMethod(将运行程序的地方)

public class myMainMethod{    
    public static void main (String[] args){   
        TestMyClass1.testCreateMyClass1ArrayList();
    }
}

2。 MyClass1(包含对象类型为“MyClass2”的arraylist)

import java.util.ArrayList;
class MyClass1 {
    private ArrayList<MyClass2> arrayListMyClass1;

    MyClass1()
    {
        arrayListMyClass1 = new ArrayList<>();
    }
}

第3。 MyClass2(要填充到MyClass1定义的数组中的对象)

import java.util.ArrayList;
class MyClass2 {
    private String myInformation;
    MyClass2()
    {
        String myInformation = "Information held within the object";
    }
}

我想测试创建MyClass1类的实例,所以我创建了类......

4。 TestMyClass1

class TestMyClass1 {
    private MyClass1 myClass1;
    public void testCreateMyClass1ArrayList(){
        myClass1 = new MyClass1();
    }
}

但是,创建类“MyClass1”的实例的测试会产生编译器错误“无法从静态上下文引用非静态方法”。但想象我的单元测试“TestMyClass1”是我的主要方法,然后我没有问题实例化类“MyClass1”(所以程序似乎按预期运行)。

有人可以解释为什么从主方法到类“TestMyClass1”调用另一个类“MyClass1”的实例的方法调用会返回此错误并提出解决方案吗?

更新:在阅读Non static method cannot be referenced from a static context error之后,有人可以确认以下内容是否适合我正在尝试的内容?

更新的代码如下......

1。我的主要方法(我们创建了一个类TestMyClass1的实例,其中MyClass1是我们想要创建一个要测试的对象的类)

public class myMainMethod{
    public static void main (String[] args){
        TestMyClass1 testMyClass1 = new TestMyClass1();
    }
}

4。 TestMyClass1(我们创建一个类,以便在创建类TestMyClass1的实例时引用类MyClass1的实例)

class TestMyClass1 {
    private MyClass1 myClass1;
    TestMyClass1(){
        myClass1 = new MyClass1();
    }
}

0 个答案:

没有答案