草庐IT

java - JUnit 中的注解列表

最近研究并实现了JUnit框架。因此,我知道JUnit中使用的注释很少:-@Test、@Before、@After、@忽略、@BeforeClass、@AfterClass、@Runwith(Suite.class)、@SuiteClasses({})、@Parameters、@RunWith(Parameterized.class)和@Rule。我确信在JUnit中使用了更多的注解。谁能指导我列出更多可以使用的注释以及在什么情况下使用它们?谢谢。 最佳答案 此Github搜索(@interface)为您提供所有注释的列表:http

java - 如何使用 JUnit 测试类的验证注释?

我需要测试validationannotations但看起来它们不起作用。我不确定JUnit是否也正确。目前,测试将通过,但您可以看到指定的电子邮件地址是错误的。JUnitpublicstaticvoidtestContactSuccess(){Contactcontact=newContact();contact.setEmail("Jackyahoo.com");contact.setName("Jack");System.err.println(contact);}要测试的类publicclassContact{@NotNull@Size(min=1,max=10)Stringn

Java 9 + maven + junit : does test code need module-info. java 自己的,放在哪里?

假设我有一个使用Maven3和junit的Java项目。src/main/java和src/test/java目录分别包含主源和测试源(一切都是标准的)。现在我想将项目迁移到Java9。src/main/java内容代表Java9模块;com/acme/project/module-info.java看起来大概像这样:modulecom.acme.project{requiremodule1;requiremodule2;...}如果测试代码需要自己的module-info.java怎么办?例如,添加对仅用于测试而不是生产代码的某些模块的依赖。在这种情况下,我必须将module-inf

java - JUnit 3 是否有类似于@Ignore 的东西

我被迫使用JUnit3。如果我使用JUnit4,我偶尔会使用@Ignore,因为我的一些测试需要一些时间。在JUnit4中有什么类似的东西吗?注释掉测试是草率的,更改名称(来自testXxx())可能会导致忘记测试。@Ignore很棒,因为它总是提醒你哪些测试没有运行。有没有人有在JUnit3中运行某些测试类方法的最佳实践? 最佳答案 除了注释掉测试或重命名它们之外,我不知道任何其他解决方案。我会选择重命名选项并使用我自己的约定。例如,它们都以ignoreXXX()开头。然后你可以用你的编辑器进行一次查找/替换,你就准备好了。

java - 测试两个对象实例是否相等 JUnit

这个问题在这里已经有了答案:HowdoIassertequalityontwoclasseswithoutanequalsmethod?(23个回答)关闭5年前。我有两个对象A和B。ObjectA是我在JUnit测试期间得到的实际结果。对象B是我进行实际的enddb调用并假设为预期审查。我需要断言两个对象实例A和B在value中相等,而不是实际对象。我们在JUnit中有一个名为assertEquals(objexpected,objactual)的方法,但我不希望这样。有没有办法或解决方法来达到同样的效果? 最佳答案 想一想你想要达

java - 使用套件时的 JUnit 4 @BeforeClass 和 @AfterClass

当使用下面的这种方法时,通过设置带有套件的jUnit。当每个Testclass中的所有@BeforeClass都将在任何测试开始执行之前执行时,我们遇到了问题。(对于每个n个TestClass文件,@BeforeClass运行,然后在它们执行后,它开始执行第一个MyTest.class文件@Test)这将导致我们分配大量资源和内存。我的想法是它一定是错误的,每个@BeforeClass不应该只在执行实际测试类之前运行,而不是在启动套件时运行?@RunWith(Suite.class)@Suite.SuiteClasses({MyTests.class,Mytests2.class,n1

java - 在 Maven 中运行 JUnit 测试,无需构建和复制文件

这个问题在这里已经有了答案:HowcanIatomicallyrunmvntests(withoutrebuildingsourcecode)?(3个回答)关闭6年前。我有一个大型Maven项目,其中包含多个模块。当我想从一个模块运行JUnit测试时,我在包含所有模块的目录中运行“mvn-Dtest=NameOfTesttest”。当我运行这个命令时,Maven会遍历每个模块并尝试编译它(尽管它已经编译),这涉及复制一堆文件并增加测试的总时间。Mavensurefire插件的“测试”命令似乎执行了测试之前的所有步骤。我想知道是否有一种方法可以只执行测试步骤,而不必费心所有尝试的文件编译

java - 使用 jUnit 进行数据驱动测试

您在jUnit中使用什么编写数据驱动的测试?(我的定义)数据驱动测试是从某个外部源(文件、数据库等)读取数据,每行/文件/任何内容执行一个测试,并在测试中显示结果的测试runner就像你有单独的测试一样-每次运行的结果都是单独显示的,而不是一个巨大的聚合体。 最佳答案 在JUnit4中,您可以使用Parameterizedtestrunner进行数据驱动测试。它的文档记录不是很好,但基本思想是创建一个返回对象数组集合的静态方法(使用@Parameters注释)。这些数组中的每一个都用作测试类构造函数的参数,然后可以使用构造函数中设置

java - 基于 JPA 的 JUnit 测试最佳实践

这是一个有点奇怪的问题,但它已经困扰了我几个月了。我已经使用Wicket+Hibernate(使用Maven构建)构建了一个基于JPA的Web应用程序,并且想直接测试DAO层。我创建了一个用于测试的特定src/test/resources/META-INF/persistence.xml文件,但一直与WTP等发生冲突。为了解决这些问题,我创建了一个单独的测试项目,单元测试位于其中。有没有更好的方法来管理JPA项目的单元测试,而无需在持久性文件之间进行决斗?附录:其他测试框架(例如,TestNG)会让这更容易吗? 最佳答案 您不妨试试

java - Maven 有没有像样的 HTML Junit 报告插件?

我发现surefire-report插件非常不适合我的工作方式。我一直在清理项目,我不想每次想在浏览器中查看测试报告时都花费5分钟来重建整个站点。如果我输入mvnsurefire-report:report-only,生成的报告太难看,几乎不可读。我正在寻找类似ant的JUnitReport任务。是否已经有一个可用的? 最佳答案 这就是我的工作:#Runtestsandgenerate.xmlreportsmvntest#Convert.xmlreportsinto.htmlreport,butwithouttheCSSorimag