很确定这将是一件非常愚蠢的事情,但我现在已经盯着这一段时间了,看不出我做错了什么。
与一些Gherkin混淆,我在不同的类中有代码(也称为另一个类) - 我试图将其分解为最简单的例子:
在我的@Before中我有这个:
public void setUp() {
whoAmI= new MyNameClass();
}
然后我以下列方式使用它:
String myName2 = new String("My name is " + whoAmI.returnJoe());
System.out.println(myName2);
在MyNameClass中,我有以下内容:
public static String returnJoe() {
System.out.println(steps.helloJoe() + " ");
return "Joe";
}
当我跑这个 - 没有问题。一切都很好。
然后我将returnJoe方法更改为:
static WebDriverSteps steps;
public static String returnJoe() {
return "Joe" + steps.helloJoe();
System.out.println(steps.helloJoe() + " ");
return "Joe";
}
WebDriverSteps有以下内容:
public class WebDriverSteps {
WebDriverSteps steps;
public String helloJoe() {
return " what do you know?";
}
现在我得到一个空指针。我很确定我的问题是由构造函数引起的,但是有一个愚蠢的时刻而且无法弄明白。
有人看到了这个问题吗?
答案 0 :(得分:1)
在上面的代码中,您忘记调用WebDriverSteps类的构造函数。这使得对象步骤指向null。因此,当您调用steps.helloJoe()时,它将返回Null指针Exception。 代码应该是 WebDriverSteps steps = new WebDriverSteps();