Search code examples
javajunitjunit4

Java unit test for different input data


I need to test some api. For example I have multiple @Test methods in the class to test my functionality, before init I connect to some url of my service, and use it.

If I have my service at multiple urls(different server environments), how can I Test this functionality for different service urls?

Flow:

  1. Init conncetion by url
  2. Run all Tests
  3. Init conncetion by another url
  4. Run all Tests(the same)
  5. ...

when was only one host I do like this:

public class TestAPI{
    @org.junit.Before
    public void init() {
      service = new Service("www.test.com");
    }
    @org.junit.Test
    public void testA(){
      service.CallA(); 
    }
    @org.junit.Test
    public void testB(){
     service.CallB(); 
    }
}

Solution

  • Happen to me sometime, and them I found this awesome idea called Parameterized Test, for instance: http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/ in this way you can all the same tests couple of time with different argument.