Java unit test for different input data

不羁的心 提交于 2019-11-27 22:17:29

问题


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

回答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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!