11

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

如果我的服务位于多个 url(不同的服务器环境),我如何为不同的服务 url 测试此功能?

流动:

  1. 通过 url 初始化连接
  2. 运行所有测试
  3. 通过另一个 url 初始化连接
  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(); 
    }
}
4

2 回答 2

12

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

于 2012-04-05T12:08:02.333 回答
9

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

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

于 2012-04-05T12:16:18.770 回答