【问题标题】:Java Junit testing problemJava Junit测试问题
【发布时间】:2010-03-21 16:29:50
【问题描述】:

我正在使用 Junit 4。我的整个程序运行良好。我正在尝试编写一个测试用例。但是有一个错误...

这是非常基本的示例测试

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

如果我使用 super 并且这样做

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

一切正常。在 JUnit 3.X 之前不是这样的 我做错了还是他们改变了它:( 如果我不清楚,对不起

有没有办法在没有 super 的情况下执行测试?或调用函数等?

【问题讨论】:

  • 什么是TestAgnes?第一个代码 sn-p 中没有提到它。请清除您的问题。

标签: java unit-testing junit testcase


【解决方案1】:

在 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 限定符。

【讨论】:

  • 感谢您的回复。当我尝试这个时,它给了我错误“类型不匹配:无法从测试转换为注释”我应该如何避免这个错误?如果我使用@Test,它会给我
  • 听起来你导入了其他一些不是注释的测试类。确保导入org.junit.Test,这应该可以解决问题。
  • 我想补充一点,如果您收到上面的“类型不匹配”错误,您可能正在做我所做的并将您的测试类命名为“测试”,这与导入冲突。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多