java 前缀匹配_java-命名约定JUnit后缀或前缀Tes

java-命名约定JUnit后缀或前缀Tes

被测类MyClass.javaJUnit测试用例名称的替代方案:

TestMyClass.java

MyClassTest.java

[http://moreunit.sourceforge.net]似乎使用“ Test”作为前缀默认值,但是我看到了这两种用法。 当将整个项目作为eclipse中的单元测试运行时,这两者似乎都可以识别,因为它是为@Test解析的类中的注释。 我想Maven也会做同样的事情。

哪个是首选?

9个解决方案

85 votes

后缀的另一个参数-至少在英语中:

一个类通常代表一个名词,它是一个概念的模型。 您的测试之一的实例将是“ MyClass测试”。 相反,一种方法将对某种动作建模,例如“测试[计算] [方法]”。

因此,我将始终对测试类使用“后缀”,并对测试方法使用前缀:

the MyClass test --> MyClassTest

test the calculate method --> testCalculate()

Andreas_D answered 2020-01-22T23:41:21Z

52 votes

我更喜欢使用后缀-这意味着在目录中查找文件列表更为简单:您不必费心地忽略前四个字母即可获得有意义的内容。 (我假设您已经将测试放在与生产代码不同的目录中。)

这也意味着,当您在Eclipse中使用Open Type(Ctrl-T)时,您最终会同时看到生产代码及其测试……这也提醒您是否没有看到测试类: )

Jon Skeet answered 2020-01-22T23:41:46Z

9 votes

在JUnit 4之前,通常先给测试类命名为SomethingTest,然后在与*Test.java匹配的所有类上运行JUnit。这些天来,注释驱动的JUnit 4只需用@Test注释测试方法即可完成。 您的测试类可能与实际源(在src/中的源在test/中的测试类)位于不同的目录结构下,因此这些天的前缀/后缀在很大程度上无关紧要。

krock answered 2020-01-22T23:42:07Z

5 votes

不冒犯任何人,但是我认为可以公平地说,“ moreunit”比JUnit少为人所共知,后者几乎无处不在,并建立了后缀测试类“ Test”的约定。

尽管JUnit4消除了同时遵循类和方法命名约定(分别是“ postfix Test”和“ prefix test”)的必要性,但我认为两者对于保持清晰性仍然很有用。

想象一下让src / main / java /.../ MyClass.myMethod()测试src / test / java /.../ MyClass.myMethod()的恐怖...

有时,偏离JUnit3约定很有用-我发现在设置方法之后命名设置方法(“ createTestFactory()”),并在其命名为“ @Before”时,比通用的“ setUp()”要清晰得多。

当需要执行几个不相关的设置操作时,这特别有用-它们可以处于单独的方法中,每个方法都标记为@Before。 这很好地传达了动作的独立性。

Morten Lauritsen Khodabocus answered 2020-01-22T23:42:46Z

5 votes

我更喜欢使用TestClassName语法。 当使用其他语法时,我在打开两个语法时都很难确定哪个是测试,哪个是编辑器中的实际类。 必须寻找名称中的最后四个字母很麻烦,而且这些字母也不总是显示出来。

对我来说,其他语法会导致每天在文件之间发生几次错误的交换,这很费时间。

Pablo Jomer answered 2020-01-22T23:43:11Z

2 votes

我认为,如果您一个人工作,对测试感到满意很重要。 但是,如果您在一个小组中,则最好坐下来并固定好东西。 我个人倾向于将后缀用于类,将前缀用于方法,并尝试使我的组适应该约定。

eytanfb answered 2020-01-22T23:43:31Z

1 votes

当我想将测试分为多个类时,也使用MyClassTest_XXX。 这在测试大型类时很有用,并且我希望对测试进行逻辑分组。 (无法控制旧代码,因此确实出现了这种情况。)然后,我得到了类似KitchenSinkTest_ForArray,KitchSinkTest_ForCollection等的信息。

Jeanne Boyarsky answered 2020-01-22T23:43:52Z

0 votes

我建议MyClassTests。

类应为名词短语,因此常用的MyClassTests和不太常见的MyClassTests或MyClassTestCase或MyClassTestFixture都可以使用。 从技术上讲,JUnit测试类的实例代表测试夹具,但是TestFixture对我来说太冗长了。

我认为MyClassTests以最佳方式传达了意图,因为类中通常有多个测试方法,每个方法代表一个测试(测试用例)。

DKroot answered 2020-01-22T23:44:21Z

-2 votes

我更喜欢后缀:TestCase。 这与以下内容一致:[http://xunitpatterns.com/Testcase%20Class.html]

Ray Tayek answered 2020-01-22T23:44:41Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值