2

对于 JUnit 测试中方法类型的放置顺序,是否有任何记录的约定?我通常有以下顺序:@Before, @Test, @After; 我也见过:@Test, @Before, @After.

示例方法:

public class SandBoxTest {
    SandBox sand;

    @BeforeClass
    public void classSetup() { }

    @Before
    public void given() { }

    @Test
    public void shouldTestThis() { }

    // support method
    private boolean doStuff() {
        return true;
    }

    @Test
    public void shouldTestThat() { }

    @After
    public void cleanUp() { }

    @AfterClass
    public void classCleanUp() { }
}

如果有“标准”约定,请提供参考。

4

2 回答 2

1

我认为没有这样的编码约定,但不要忘记 @Rule 注释。

http://blog.schauderhaft.de/2009/10/04/junit-rules/

于 2013-07-18T22:17:58.323 回答
0

我和我的一位同事讨论过这个问题。我争论的顺序@BeforeClass是 , @Before, @After,@AfterClass然后是所有的@Test, 而他想要的顺序是@BeforeClass, @Before, all the @Test, 然后@After是 , @AfterClass

我在顶部设置 setUp 和 tearDown 方法的论点是:

  • 进入测试班后,您可以轻松查看测试条件。
  • 很多时候,tearDown 反映了 setUp 中所做的某些事情。在这种情况下,将它们都显示在屏幕上以更容易看到它们彼此匹配会很有用。
  • 您不必滚动到底部来查看是否有任何 tearDown(我们项目的测试类中通常没有)。

他认为在 setUp 和 tearDown 方法之间进行测试的论点是这是逻辑顺序,这也反映了方法执行的顺序。

我们在互联网上搜索了一个约定,但没有找到,所以最后我们同意不同意,并决定在项目中接受这两个订单。

这可能不是问题的直接答案,但我想我会与面临相同决定的其他人分享我们的讨论。

于 2015-09-04T09:17:50.760 回答