2013-02-13 55 views
2

我们有很多用Junit 3.x编写的旧单元测试。我的任务是将它们移植到我们的JUnit 4.x编码标准中,其中包括禁止使用“扩展TestCase”。从3.x移植JUnit测试到4.x

一些旧的测试呼叫super.setUp()我现在需要删除,但是,我不知道该调用中发生了什么。我可以直接删除这行代码而不用担心,还是应该用某些东西替换它?

回答

2

由于setUp()现在在每次测试之前调用,所以可以安全地删除super.setUp()。

+1

不一定。如果测试的基类不是'junit.framework.TestCase',并且该基类具有非抽象的'setUp()'调用,则对super.setUp()的调用是绝对必要的。如果你在移植到JUnit4之后拥有基类(并且使用规则,那么它们很少被需要),那么使'@ Before'和'@ After'方法具有良好的名称并使其成为最终的名称。 – NamshubWriter 2013-02-13 22:32:28

0

注释掉行,然后运行测试。如果测试写得正确,测试结果应该给你答案,假设测试以前是成功的。

+0

不幸的是,我没有时间去运行任何测试,我只需要让它们编译(没有评论所有内容)并且有几百个测试。我将在即将到来的几周内着手实际运行测试。 – glenneroo 2013-02-13 20:22:36

+0

@glenneroo你需要花时间运行每个测试,同时作为端口。如果您无法抽出时间,请在您有足够时间后再移植测试。 – NamshubWriter 2013-02-13 22:34:21

+0

你有一个有效的点,但在我的情况下,不幸的是不是一个选项。 – glenneroo 2013-02-14 01:15:01

0

super.setUp()是TestCase不做任何事情,可以安全地删除。如果要扩展另一个类,则仍然需要保持super.setUp()调用。但是,这不会失败,所以你应该没问题。

例如,假设我们有ATest扩展BTest,并且BTest扩展了TestCase。您可以安全地从BTest中删除super.setUp()调用,而不是ATest。由于BTest可能会做一些事情,ATest仍然需要调用它。