Tag: unit testing

如何参数化Maven surefire插件,以便我可以选择运行哪些TestNG套件

我在TestNG中有很多测试套件。 这些是XML文件。 我希望能够在从maven运行集成测试时选择多个XML套件。 目前我可以将套件文件添加到pom.xml,如下所示: org.apache.maven.plugins maven-surefire-plugin ${pathToMySuiteFile_1} ${pathToMySuiteFile_1} 该解决方案有一些限制。 我只能更改我在pom.xml中定义的测试套件的路径。 所以在我的例子中,它总是必须是两个文件。 我不能跑,比方说,5套房或只有一套。 有没有办法以某种方式参数化pom.xml中的整个“suiteXmlFiles”部分? org.apache.maven.plugins maven-surefire-plugin ${multiple_paths_ToMySuiteFiles} 运行与给定测试组匹配的所有内容对我来说不是一个选项:我不想加载我所拥有的所有套件,然后使用TestNG套件中的组运行所选的测试。 原因是在运行具有组filter的所有测试套件之后生成的报告与仅运行所选测试套件时的报告不同。

像Factory Factory这样的框架是否存在?

Factory Girl是一个方便的rails框架,可以轻松创建测试模型实例。 来自Factory Girl主页 : factory_girl允许您快速定义每个模型的原型,并询问具有对手头测试很重要的属性的实例。 一个例子(也来自主页): Factory.sequence :email do |n| “somebody#{n}@example.com” end # Let’s define a factory for the User model. The class name is guessed from the # factory name. Factory.define :user do |f| # These properties are set statically, and are evaluated when the factory is # defined. f.first_name ‘John’ f.last_name ‘Doe’ […]

在服务器上运行unit testing(JAX-RS)

我正在编写一个JAX-RS(Jersey + Maven)应用程序,它可以执行一些棘手的操作(例如调用WAR中嵌入的本机可执行文件)。 我需要在服务器上运行[部分]unit testing(JUnit4)(运行Tomcat 7.0.22的Amazon Elastic Beanstalk)来检查一切是否正常。 除了RYO(滚动你自己的)之外,还有一种标准的,灵活的方式吗? 我发现的东西似乎更多地与开发者机器上的集成测试(即Jersey测试框架)有关。 甚至RYO让我感到困惑……我怎样才能从源包中调用测试包中的代码? 基本上,我想创建一个我可以调用的/ test资源,它将以漂亮的格式从服务器返回我的unit testing结果。 如果我可以做/ test / {category}更好

如何使用mockito测试REST服务?

我是Javaunit testing的新手,我听说Mockito框架非常适合测试目的。 我开发了一个REST服务器(CRUD方法),现在我想测试它,但我不知道怎么做? 更多我不知道这个测试程序应该如何开始。 我的服务器应该在localhost上工作,然后在该url上调用(例如localhost:8888)? 这是我到目前为止所尝试的,但我很确定这不是正确的方法。 @Test public void testInitialize() { RESTfulGeneric rest = mock(RESTfulGeneric.class); ResponseBuilder builder = Response.status(Response.Status.OK); builder = Response.status(Response.Status.OK).entity( “Your schema was succesfully created!”); when(rest.initialize(DatabaseSchema)).thenReturn(builder.build()); String result = rest.initialize(DatabaseSchema).getEntity().toString(); System.out.println(“Here: ” + result); assertEquals(“Your schema was succesfully created!”, result); } 这是initialize方法的代码。 @POST @Produces(MediaType.APPLICATION_JSON) @Path(“/initialize”) public Response initialize(String DatabaseSchema) { /** Set the […]

JUnit在Java中测试GUI

我想为GUI编写测试用例。 我想知道你如何模拟JButton的点击,或者你如何提取JTable的元素。 出于这个目的,我构建了一个简单的GUI,如果单击该按钮并且JTextfield为空,则将计数增加1,但如果提供了数字,则计数将替换为JTextfield中的整数。 当然我想使用正则表达式来确保输入JTextfield的文本实际上是一个整数,但让我们假设用户不会乱七八糟地输入一个非整数。 此外,JLabel在JTable添加新行时更新当前计数。 这是代码: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.table.DefaultTableModel; public class sampleGUI extends JFrame implements ActionListener { private Integer previous_count; private Integer current_count; private JButton Button; private JTable table; private JTextField text; private DefaultTableModel […]

如何在IntelliJ和Maven中使用JUnit 5 @Tag

我想使用JUnit 5中的@Tag ,以便轻松过滤我的测试。 我在2016年9月的博客中发现IntelliJ不支持@Tag 。 不知道当前的状态是什么。 此外,我是使用Maven的新手,但我尝试修改POM文件,以便在命令提示符下执行mvn test时过滤测试。 没运气。

在Eclipse中独立运行所有JUnit测试,每次都重新加载Spring上下文

目标:在Eclipse中找到一种方法来执行JUnit类中的所有测试,该类在每次测试之前重新加载Spring上下文,而不是仅仅一次。 场景:我inheritance了DAO测试套件,该套件使用HSQL内存数据库,该数据库在上下文加载时使用一些示例数据进行初始化。 在运行测试时,我注意到如果整个类都被执行,所有测试都会通过。 但单独执行时,特定测试方法会失败。 显然,测试不是独立的,早期测试正在改变数据库状态而不是自己清理,后来的测试依赖于传递。 我想确定哪些测试是依赖的,并且在自己运行时会失败,而不必手动执行每个测试或修改代码。

如何在IntelliJ IDEA中指定哪个@Tag应该用于JUnit

有没有办法从IntelliJ的JUnit5 Runner的构建中指定只测试具有特定@Tag的测试方法(或者相反,除了具有特定@Tag的测试之外的所有测试都应该被执行)? 我知道如何使用maven,但只有IntelliJ UI才有可能吗? 最好的问候,迪特尔

JUnit和junit.framework.TestSuite – 没有可运行的方法

我做了一些unit testing(在测试课上)。 我读过的教程说我应该为unit testing做一个TestSuite。 奇怪的是,当我直接运行unit testing时(选择测试类 – 运行为jUnit测试)一切正常,但是当我在测试套件中尝试同样的事情时,总会出现exception:java.lang。例外:没有可运行的方法。 以下是测试套件的代码: import junit.framework.Test; import junit.framework.TestSuite; public class AllTests { public static Test suite() { TestSuite suite = new TestSuite(“Test suite for com.xxx.yyyy.test”); //$JUnit-BEGIN$ suite.addTestSuite(TestCase.class); //$JUnit-END$ return suite; } } 任何想法为什么这不起作用?

unit testing的良好模式形成了在Spring MVC中具有基于注释的validation的bean

对表单bean使用基于注释的validation时,为了确保为每个字段指定正确的validation注释,对这些bean进行unit testing的最佳做法是什么? 例如,如果您有: public class MyForm { @NotNull private String name; } validation@NotNull是否适用于它的最佳方法是什么? 一个显而易见的方法是创建一个validation器,在它上面抛出一个null并期望它失败。 但在我看来,这不是最好的方法,因为你将使用它来测试@NotNull的行为和实现,而不是信任框架。 理想情况下,我希望使用reflection或实用程序,使我可以断言@NotNull (和任何其他)validation应用于给定字段,而不必发送未通过validation的各种值组合。 是否有一种优雅的方式来做到这一点,或者我是否在正确的轨道上?