Junit @Before 注释给出 Nullpointer 异常

发布于 2024-09-12 02:21:28 字数 869 浏览 6 评论 0原文

我使用的是junit 4.8.1。

以下是代码。我收到“Nullponiter”异常。我怀疑@Before下的“SetUp”代码没有在其他方法之前执行。请求有学识的朋友帮我解决这个问题。 (这是 Koskela 的 TDD 书籍的示例)

import org.junit.*;
import java.util.*;
import static org.junit.Assert.*;

public class TestTemplate  {
 private Template template; 
@Before
public void setUp() throws Exception{
 Template template = new Template("${one},${two},${three}");
 template.set("one","1");
 template.set("two","2");
 template.set("three","3");
}
@Test
public void testmultipleVariables() throws Exception{
 testassertTemplateEvaluatesTo("1, 2, 3");
}
@Test
public void testUnknownVariablesAreIgnored() throws Exception{

 template.set("doesnotexist","whatever");
 testassertTemplateEvaluatesTo("1, 2, 3");
}
private void testassertTemplateEvaluatesTo(String expected){


 assertEquals(expected,template.evaluate());
}

}

I am using junit 4.8.1.

The following is the code. I am getting "Nullponiter" exception. I suspect that the "SetUp" code under @Before is not been excecuted before other methods. Request the learned friends to help me in resolving the issue. (This is an example for TDD book by Koskela)

import org.junit.*;
import java.util.*;
import static org.junit.Assert.*;

public class TestTemplate  {
 private Template template; 
@Before
public void setUp() throws Exception{
 Template template = new Template("${one},${two},${three}");
 template.set("one","1");
 template.set("two","2");
 template.set("three","3");
}
@Test
public void testmultipleVariables() throws Exception{
 testassertTemplateEvaluatesTo("1, 2, 3");
}
@Test
public void testUnknownVariablesAreIgnored() throws Exception{

 template.set("doesnotexist","whatever");
 testassertTemplateEvaluatesTo("1, 2, 3");
}
private void testassertTemplateEvaluatesTo(String expected){


 assertEquals(expected,template.evaluate());
}

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋意浓 2024-09-19 02:21:28

您有两个同名的变量:

private Template template; 
@Before
public void setUp() throws Exception{

// declaring second variable here
Template template = new Template("${one},${two},${three}");

将最后一行更改为:

template = new Template("${one},${two},${three}");

You have two variables with the same name:

private Template template; 
@Before
public void setUp() throws Exception{

// declaring second variable here
Template template = new Template("${one},${two},${three}");

change that last line to:

template = new Template("${one},${two},${three}");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文