Ztyk
Ztyk

Reputation: 33

Java pass arguments dynamically to a junit test

I'm doing a special junit test, that the params are introduced in the front-end of the application by the user and received in back-end of the application. And i want to generate junit test that use that information as parameters.

I saw some guide (like mykong guide and tutorial points) but most of them use static parametrized and i want some dynamic thing. I already tried to use junit annotations, do a set or pass the params to the junit class, use mockito methods but nothings work as dynamic process

Can someone point me to the right direction?

Right now i have something like that

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());
}

Upvotes: 2

Views: 1442

Answers (1)

GhostCat
GhostCat

Reputation: 140613

Probably not the nicest solution, but maybe an acceptable workaround:

  • generate your unit test so that it fetches parameters from System properties
  • run the generated JUnit test in its own JVM, and pass the parameters/properties on the command line

Upvotes: 2

Related Questions