针对不同输入数据的Java单元测试

时间:2012-04-05 12:00:49

标签: java junit junit4

我需要测试一些api。例如,我在类中有多个@Test方法来测试我的功能,在init之前我连接到我的服务的某个url,然后使用它。

如果我的服务位于多个网址(不同的服务器环境),我该如何针对不同的服务网址测试此功能?

流量:

  1. 网址初始化
  2. 运行所有测试
  3. 另一个网址的初始意见
  4. 运行所有测试(相同)
  5. ...
  6. 当我只有一个主人时,我喜欢这个:

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

2 个答案:

答案 0 :(得分:12)

有时发生在我身上,他们发现了这个叫做参数化测试的好主意,例如: http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/ 通过这种方式,您可以使用不同的参数进行所有相同的测试。

答案 1 :(得分:9)

有参数化测试:http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/http://ourcraft.wordpress.com/2008/08/27/writing-a-parameterized-junit-test/

或者,你可以使你的测试用例抽象化,并用每个子类设置url来创建它。