第三方休息服务的单元测试

时间:2018-01-16 09:33:46

标签: java rest unit-testing

我已经为第三方rest API编写了单元测试。这些测试是我称之为实时测试的,因为它们会测试其余的api响应并需要有效的凭据。这是必需的,因为第三方提供的文档不是最新的,因此它是了解响应的唯一方法。显然,我不能将它们用作单元测试,因为它们实际上是在外部连接的。哪些地方可以放置这些测试或将它们与模拟单元测试分开?

当我检查它们时,我目前不得不对它们进行评论,以免它们在构建过程中运行。

2 个答案:

答案 0 :(得分:1)

我倾向于使用assumeTrue进行这类测试,并将系统属性传递给测试。所以你的一个测试的开始是:

@Test
public void remoteRestTest()
{
    assumeTrue(System.getProperty("run.rest.tests").equals("true"));
    ...
}

如果您将-Drun.rest.tests=true传递给您的版本,这只会允许测试运行。

答案 1 :(得分:0)

您正在寻找的是集成测试。虽然单元测试的范围通常是单个类,但集成测试的范围是其环境中的整个组件,这包括外部资源(如删除REST服务)的可用性。是的,你绝对应该将集成测试与单元测试分开。如何在您的环境中完成此操作取决于您的构建过程。 例如,如果您使用Maven,则会有一个Maven Failsafe Plugin针对您的构建过程中的集成测试。