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

Ser*_*gey 9 java junit junit4

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

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

流:

  1. 由网址初始conncetion
  2. 运行所有测试
  3. 初始由另一个网址conncetion
  4. 运行所有测试(相同)
  5. ...

什么时候只有一个主人我喜欢这个:

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(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

she*_*hem 12

发生在我的某个时间,我发现这个很棒的想法叫做参数化测试,例如:http: //www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/ 这样你就可以了同样的测试几次与不同的论点.


Ray*_*yek 9

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

或者,您可以使用测试用例抽象并使用每个子类设置url对其进行子类化.