问题
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:
- Init conncetion by url
- Run all Tests
- Init conncetion by another url
- Run all Tests(the same)
- ...
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();
}
}
回答1:
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.
回答2:
there are prameterized tests: http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/ and http://ourcraft.wordpress.com/2008/08/27/writing-a-parameterized-junit-test/.
alternatively, you can make your test case abstract and subclass it with each subclass setting up the url.
来源:https://stackoverflow.com/questions/10028188/java-unit-test-for-different-input-data