【问题标题】:Junit3 suite.addTest(new mytest()) get 'null' errorJunit3 suite.addTest(new mytest()) 得到“空”错误
【发布时间】:2015-11-19 10:13:58
【问题描述】:

我创建了一个测试套件并想添加一些新的测试,但是 suite.addTest() 方法似乎没有像我预期的那样工作:

public static Test suite() {
    TestSuite suite = new TestSuite(AllTests.class.getName());
    //$JUnit-BEGIN$
    // This line works
    suite.addTestSuite(TestAdd.class);
    // This line will cause a 'null' failure
    suite.addTest(new TestAdd());
    //$JUnit-END$
    return suite;
}

TestAdd的代码:

import junit.framework.TestCase;
public class TestAdd extends TestCase { 
    public void test1()
    {
        assertEquals(1, 1);
    }
}

我错过了什么吗?

【问题讨论】:

  • 请发布您的 TestAdd 代码。它可能是导致问题的构造函数。您是否尝试过使用调试器?
  • 嗨,我已经用 TestAdd 类更新了这个问题。这是一个微不足道的。
  • 您能否也发布您获得的完整错误和堆栈跟踪?

标签: junit junit3


【解决方案1】:

来自 Javadocs:

TestCase()

启用序列化的无参数构造函数。 这个方法不打算被普通人使用而不调用 setName()。

TestCase(java.lang.String name)

用给定的名称构造一个测试用例。

看来您必须使用 TestCase 构造函数向测试传递名称字符串。使用无参数构造函数仅用于启用测试用例的序列化。

试试:

suite.addTest(new TestAdd("add"));

【讨论】:

  • 谢谢。 suite.addTest(new TestAdd("add")) 不起作用,它失败了: [junit.framework.AssertionFailedError: Method "add" not found] suite.addTest(new TestAdd("test1")) 有效。字符串参数必须是TestAdd类的方法,但这不是我所期望的……
  • 添加一个新的构造函数[public TestAdd(String methodName, )。谢谢!
猜你喜欢
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
  • 2013-08-04
  • 1970-01-01
相关资源
最近更新 更多