2015-11-19 43 views
0

我创建了一个测试套件,并希望增加一些新的考验,但suite.addTest()方法似乎如我所料不工作:Junit3 suite.addTest(新mytest的())获得“空”的错误

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); 
    } 
} 

难道我错过了什么?

+0

请发表您的TestAdd代码。它可能是导致问题的构造函数。你尝试过使用调试器吗? – EkcenierK

+0

嗨,我用TestAdd类更新了这个问题。这是一个微不足道的。 – Zippon

+0

你也可以发布你得到的完整错误和堆栈跟踪吗? – EkcenierK

回答

1

从的Javadoc:

TestCase()

No-arg constructor to enable serialization. This method is not intended to be used by mere mortals without calling setName().

TestCase(java.lang.String name)

Constructs a test case with the given name.

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

尝试:

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

谢谢。 suite.addTest(new TestAdd(“add”))不起作用,它失败: [junit.framework.AssertionFailedError:方法“add”未找到] suite.addTest(new TestAdd(“test1”))works 。 字符串参数必须是TestAdd类的方法,但这不是我所期望的... – Zippon

+0

解决方法是添加一个新的构造函数[public TestAdd(String methodName,)。谢谢! – Zippon