我希望能够测试我的应用程序,从我读过的内容中,最好通过创建一个类来测试应用程序。我希望测试类应该是我可以使用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();
}
}