Java将参数动态传递给junit测试

Java将参数动态传递给junit测试,java,junit,Java,Junit,我正在做一个特殊的junit测试,即用户在应用程序的前端引入参数,并在应用程序的后端接收参数。我想生成junit测试,使用这些信息作为参数 我看到了一些指南(如mykong指南和教程点),但大多数都使用静态参数化,我想要一些动态的东西。我已经尝试过使用junit注释、设置参数或将参数传递给junit类、使用mockito方法,但没有任何东西可以作为动态过程使用 有人能给我指一下正确的方向吗 现在我有类似的事情 public void run (Object foo) //Class that

我正在做一个特殊的junit测试,即用户在应用程序的前端引入参数,并在应用程序的后端接收参数。我想生成junit测试,使用这些信息作为参数

我看到了一些指南(如mykong指南和教程点),但大多数都使用静态参数化,我想要一些动态的东西。我已经尝试过使用junit注释、设置参数或将参数传递给junit类、使用mockito方法,但没有任何东西可以作为动态过程使用

有人能给我指一下正确的方向吗

现在我有类似的事情

public void run (Object foo)  //Class that contains the information introduced by the user
JUnitCore junit1 = new JUnitCore();
Result result4 = JUnitCore.runClasses(GeneratedTest.getClass()); //Junit class

 //I tried: do a setFoo on the GeneratedTest ; pass the foo on the constructor; 

for (Failure failure : result4.getFailures()) {
                    System.out.println(failure.toString());
}

可能不是最好的解决方案,但可能是可接受的解决方案:

  • 生成单元测试,以便它从系统属性获取参数
  • 在自己的JVM中运行生成的JUnit测试,并在命令行上传递参数/属性

动态测试可以通过“测试工厂”来构建——您搜索的行为不是单元测试的目的——我还认为您可能会出于错误的目的滥用单元测试。你能解释一下你的具体用例吗?你想进行端到端的集成测试。这是jmeter的任务。在单元测试中,您应该测试特定的组件。比方说,您检查前端是否尊重所有设置,并且没有硬代码-URL上的输出预期数据,发出预期请求。然后检查后端是否对请求做出反应并正确响应。当我读到你的问题时,我也想到了如何使用ReflectionUtils来注入类。你可以设置一个特殊的框架,或者只是将测试代码作为普通端点提供(你仍然可以使用断言使代码“像测试一样”)。这是在maven的自动化环境中如何实现的: