草庐IT

Junit-Tests

全部标签

java - Junit @Rule 和 @ClassRule

我正在编写使用TemporaryFolder规则的JUnit4测试。似乎它适用于@Rule和@ClassRule。Junit@Rule和@ClassRule有什么区别?为什么我应该使用一个而不是另一个? 最佳答案 当你在一个类中有多个测试方法时,区别就变得很明显了。@ClassRule的before()方法在任何测试方法之前运行。然后运行所有的测试方法,最后是规则的after()方法。因此,如果您在一个类中有五个测试方法,before()和after()仍然只会运行一次。@ClassRule适用于静态方法,因此具有其中固有的所有限制

java - 使用 JUnit 的 @Parameterized 时,我可以让一些测试仍然只运行一次吗

这个问题在这里已经有了答案:Excludinganonparamtestinparameterizedtestclass(9个回答)关闭5年前.我在很多情况下使用@Parameterized来对多个排列进行测试。这工作得很好,并且使测试代码本身保持简单和干净。但是有时我希望某些测试方法仍然只运行一次,因为它们不使用参数,JUnit有没有办法将测试方法标记为“单例”或“运行-一次”?注意:这与在Eclipse中运行单个测试无关,我知道该怎么做:) 最佳答案 您可以使用Enclosedrunner构建您的测试。.@RunWith(Enc

java - 使用 JUnit 的 @Parameterized 时,我可以让一些测试仍然只运行一次吗

这个问题在这里已经有了答案:Excludinganonparamtestinparameterizedtestclass(9个回答)关闭5年前.我在很多情况下使用@Parameterized来对多个排列进行测试。这工作得很好,并且使测试代码本身保持简单和干净。但是有时我希望某些测试方法仍然只运行一次,因为它们不使用参数,JUnit有没有办法将测试方法标记为“单例”或“运行-一次”?注意:这与在Eclipse中运行单个测试无关,我知道该怎么做:) 最佳答案 您可以使用Enclosedrunner构建您的测试。.@RunWith(Enc

java - 如何从 JUnit 测试中运行 JMH?

如何使用JUnit测试在现有项目中运行JMH基准测试?官方文档建议制作一个单独的项目,使用Mavenshade插件,并在main方法中启动JMH。这是必要的吗?为什么推荐它? 最佳答案 我一直在使用JUnit在我现有的Maven项目中运行JMH,没有明显的不良影响。我无法回答为什么作者建议以不同的方式做事。我没有观察到结果的差异。JMH启动一个单独的JVM来运行基准测试以隔离它们。这是我的工作:将JMH依赖项添加到您的POM:org.openjdk.jmhjmh-core1.21testorg.openjdk.jmhjmh-gene

java - 如何从 JUnit 测试中运行 JMH?

如何使用JUnit测试在现有项目中运行JMH基准测试?官方文档建议制作一个单独的项目,使用Mavenshade插件,并在main方法中启动JMH。这是必要的吗?为什么推荐它? 最佳答案 我一直在使用JUnit在我现有的Maven项目中运行JMH,没有明显的不良影响。我无法回答为什么作者建议以不同的方式做事。我没有观察到结果的差异。JMH启动一个单独的JVM来运行基准测试以隔离它们。这是我的工作:将JMH依赖项添加到您的POM:org.openjdk.jmhjmh-core1.21testorg.openjdk.jmhjmh-gene

java - 在没有电子邮件实际出去的情况下运行 Junit 电子邮件测试

我想在一些模型类上运行单元测试(Junit),这些模型类通常会发送电子邮件确认事情已经发生。是否有一个模拟电子邮件服务器可用于单元测试,让您确认您的运行尝试发送电子邮件而没有实际发送电子邮件?这似乎很不错,只是不确定我想自己写。电子邮件方面的应用程序堆栈是Velocity+Spring,因此如果可以通过简单地更改applicationContext.xml文件来指向测试服务器,那就更好了。 最佳答案 Dumbster是一个为测试而设计的假SMTP服务器。它是用Java编写的。 关于jav

java - 在没有电子邮件实际出去的情况下运行 Junit 电子邮件测试

我想在一些模型类上运行单元测试(Junit),这些模型类通常会发送电子邮件确认事情已经发生。是否有一个模拟电子邮件服务器可用于单元测试,让您确认您的运行尝试发送电子邮件而没有实际发送电子邮件?这似乎很不错,只是不确定我想自己写。电子邮件方面的应用程序堆栈是Velocity+Spring,因此如果可以通过简单地更改applicationContext.xml文件来指向测试服务器,那就更好了。 最佳答案 Dumbster是一个为测试而设计的假SMTP服务器。它是用Java编写的。 关于jav

java - 如何使用 jUnit 对 Servlet 过滤器进行单元测试?

实现了doFilter()。如何用jUnit正确覆盖过滤器?publicvoiddoFilter(ServletRequestservletRequest,ServletResponseservletResponse,FilterChainfilterChain)throwsjava.io.IOException,javax.servlet.ServletException{HttpServletRequestrequest=(HttpServletRequest)servletRequest;HttpServletResponseresponse=(HttpServletRespon

java - 如何使用 jUnit 对 Servlet 过滤器进行单元测试?

实现了doFilter()。如何用jUnit正确覆盖过滤器?publicvoiddoFilter(ServletRequestservletRequest,ServletResponseservletResponse,FilterChainfilterChain)throwsjava.io.IOException,javax.servlet.ServletException{HttpServletRequestrequest=(HttpServletRequest)servletRequest;HttpServletResponseresponse=(HttpServletRespon

java - 如何避免 JUnit 测试用例中的继承?

我在JUnit中有许多测试用例。它们都需要在它们的@BeforeClass静态方法中执行相同的代码。这是一个代码重复,我正试图摆脱它。一种肮脏的做法是通过继承。JUnit中是否还有其他机制可能有所帮助?PS。我写了这篇关于这个主题的博客文章:http://www.yegor256.com/2015/05/25/unit-test-scaffolding.html 最佳答案 编写可重用代码(而不是从它继承)的JUnit方法是规则。见https://github.com/junit-team/junit/wiki/Rules这是一个愚蠢