代码之家  ›  专栏  ›  技术社区  ›  Michael Mao

现在Java要学习哪种统一测试框架?[关闭]

  •  12
  • Michael Mao  · 技术社区  · 14 年前

    虽然我已经用Java编程了大约3年+现在(不是每天,但至少我理解基本原理),还没有真正进入单元测试领域…

    现在我的工作更多的是面向测试/问题分析,所以我认为一个好的Java单元测试框架将对这个角色有很大帮助。

    显然,在我的团队中,没有正式的规则可以使用哪个框架。所以,作为一个初学者,想知道哪种框架是快速入门的好方法?

    Junit?

    TestNG?

    或者别的什么?

    编辑:与亚马逊的测试相比,Junit似乎有更多的印刷书籍作为参考。但我不知道它们在Java行业中的流行趋势。

    12 回复  |  直到 14 年前
        1
  •  31
  •   Cedric Beust    14 年前

    我是testng的创建者和“下一代测试”一书的作者,所以这里有一些(明显有偏见的)想法。

    对于功能(或端到端/集成/系统,无论您喜欢什么术语)测试,testng提供了一些JUnit没有的功能,并且用户发现这些功能非常有用:

    • 组。一旦编译了测试,就可以让testng运行所有的“前端”测试,或者“快速”、“慢速”、“数据库”等。

    • 支持多线程测试。这有两种不同的含义:

    1)您可以告诉testng在您定义的线程池中并发运行所有测试(XML文件中的一行更改)。这是非常可配置的,因此没有多线程的测试仍然可以在单个线程中运行。

    2)您可以告诉testng从p线程调用您的测试方法n次。这可以让您很好地了解正在测试的代码的线程安全性。

    • 测试依赖性和确定性排序。这对于集成测试非常有用,因为在集成测试中,很常见的情况是,在测试方法运行之前,需要先测试方法才能成功。由于这个特定的原因,testng在Selenium社区非常流行(“如果登录测试失败,不要麻烦测试我网站的这个页面”)。

    测试依赖性的另一个直接优势是,testng可以告诉您“1个方法失败,跳过99个方法”,这比“100个方法失败”更准确。

    testng有许多,更多的功能,我很高兴在这里或我们的邮件列表中回答问题。( http://groups.google.com/group/testng-users )

        2
  •  6
  •   Georgy Bolyuba    14 年前

    我会学习测试 Unitils . 一直满足我所有的需要。添加xmlUnit和dbUnit,您应该在很长一段时间内得到解决。

        3
  •  3
  •   Mateusz Dymczyk    14 年前

    老实说,我JUnit比testng更受欢迎,至少在我工作和生活的地方。我知道这可能是一个奇怪的论点,但如果我是你,我会浏览一些工作补充资料,看看你所在地区/国家的行业对哪些框架有利(例如,我之所以选择Junit是因为这个,我的意思是我肯定可以学习testng,结果可能会更好,但如果所有的雇主都要求Junit Knowle,这对我有什么好处呢?DGE?).

        4
  •  2
  •   Shawn D.    14 年前

    尽管这似乎是一个微不足道的标准,所有事物都是平等的,但看起来工作趋势对军政府非常有利。

    http://www.indeed.com/jobtrends?q=TestNG%2C+JUnit&l=

        5
  •  2
  •   Kurt Du Bois    14 年前

    他们都做得同样好,所以没有对错。您可以结合使用这两种框架来帮助支持您的开发。

    如果你需要为一个客户工作,你可以学习一个你期望使用的客户。如果不是,最好的办法就是同时尝试一下,找出最适合你的方法。

        6
  •  2
  •   Dimitar    14 年前

    我使用了这两种方法,并发现对于单元测试来说,只有JUnit工作得很好,但是在系统测试方面,我建议使用testng。testng提供了一些额外的特性(如参数测试),并且非常灵活。例如,在JUnit中,一个测试在一个套件中失败通常意味着您必须重新运行整个套件,但是在测试中,您可以简单地重新运行失败的测试。这是一篇非常好的文章,概述了这两个方面(尽管有点偏向于测试)

    http://www.ibm.com/developerworks/java/library/j-cq08296/index.html

        7
  •  2
  •   Thorbjørn Ravn Andersen    14 年前

    JUnit在许多IDE中都得到了很好的支持,包括Eclipse,带有注释的JUnit4非常适合使用。

    除非您有特定的需求,否则请使用工具支持,即JUnit。

        8
  •  1
  •   Rakesh Goyal    14 年前

    用Unitils进行测试真的很棒。它几乎涵盖了所有的需求。Unitils支持许多断言实用程序、Spring、Hibernate、模拟框架、dbutils等。

        9
  •  1
  •   Jean-Philippe Caruana    14 年前

    对我来说,这只是一个品味问题。我现在每天使用JUnit已经5年多了,我对它非常满意,尤其是最新版本及其@rule功能,它阻止我的团队反复编写相同的代码。 它与我每天使用的所有工具都很好地集成在一起:ide、build、continuous int_)gration…

        10
  •  1
  •   WStgo    14 年前

    JUnit是著名的和最好的单元测试工具,我认为我们都知道Junit是如此重要,以至于Java开发者将其编码模式更改为JUnit贡献,您可以学习一些JUnit作为基本单元测试技术,也可以学习TestNG作为第二单元测试技术。

    以下链接可能对您有用! http://www.javarmi.com/2010/08/junit-4-tutorial-and-example-get-starting/

        11
  •  0
  •   Sheetal Mohan Sharma    14 年前

    朱尼特是最好的起点。JUnit4.x有许多丰富的特性,如注释等,并且它从流行的框架(如Spring)得到了很好的支持。

        12
  •  -1
  •   Sujee    14 年前

    我要去朱尼特。