2010-03-21 139 views
7

我正在使用Junit 4.我的整个程序工作正常。我正在尝试编写一个测试用例。但有一个错误...Java Junit测试问题

这里是非常基本的样本测试

public class di extends TestCase{ 
    private static Records testRec; 
    public void testAbc() { 
     Assert.assertTrue(
      "There should be some thing.", 
      di.testRec.getEmployee() > 0); 
    } 

} 

,当我运行这个它给我的错误

fName can not be null 

如果我使用超做这样的

public TestA() { 
super("testAbc"); 
} 

它工作得很好。这不是在此之前使用JUnit 3.X 我做错了或者他们改变了它:( 很抱歉,如果我不明白

有什么办法没有executre超检查?或调用函数等等?

+0

TestAgnes是什么?它在第一个代码片段中没有提及。请清除你的问题。 – Bozho

回答

16

在JUnit 4中,您无需延伸TestCase,而是使用@Test标注来标记你的测试方法:

public class MyTest { 
    private static Records testRec; 
    @Test 
    public void testAbc() { 
     Assert.assertTrue(
      "There should be some thing.", 
      MyTest.testRec.getEmployee() > 0); 
    } 
} 

作为一个方面说明,测试在类中static成员可能会让你的单元测试依赖于每个其他,这不是一件好事,除非哟你有一个很好的理由,我会建议删除static限定符。

+1

感谢您的回复。当我尝试这样做时,它给了我错误“类型不匹配:无法从测试转换为注释”我应该如何避免此错误?它给了我,如果我使用@Test – user238384

+4

听起来像你导入了一些其他的测试类,这不是一个注释。确保你导入'org.junit.Test',这应该可以解决问题。 –

+0

感谢它的工作! ! ! – user238384

0

这不是你的情况,但是这个错误也可能意味着你的项目中有一个名为Test.java的文件。重命名它将修复错误,但重构后@Test将更改为@NewName(至少在Eclipse中),因此请记住手动将其重新更改为@Test