通过一个JUnit测试测试多个版本的测试应用程序

时间:2016-09-08 19:50:31

标签: java unit-testing junit

我们的应用程序如下: [前端]< -restAPI-> [后端] 后端应该始终处于最新版本,并且可以支持多个版本的前端,如Ver1,Ver2等.restAPI协议可能会有微小的变化,甚至前端的反应方式(更多功能或不同的行为)。

此测试项目测试正确的通信,前端的行为方式以及服务正确数据的后端。 我们希望将相同的测试项目分支用于所有支持的版本,现在实际上只有很小的差异所以我们的java测试代码有

src

问题是拆分版本最优雅的方法是什么?现在它可以工作,但随着版本号的增加,它将变得一团糟。 我想有一个父@Test方法,并决定根据版本运行哪个子测试。

if (version == "ver1") {
    ....
} else if (version == "ver2") {
    ....
}

问题是,如果我的想法很好,也许有人遇到类似的问题。

1 个答案:

答案 0 :(得分:1)

您的测试系统的责任"是测试。不是版本控制。

换句话说:"正确"这里的答案是使用源代码管理系统!

您的代码库包含

A)源代码 B)相关测试

因此,当您的产品具有多个不同版本时,应该通过将A)和B)一起在同一分支内进行管理。

而你的设置似乎是那些方面真的是分开的;和你的测试代码库" 与您的产品代码控制的版本相同。这是要解决的关键点。

其他任何事情只是对抗症状!

[编辑]添加例子

Branch 1 - Version 1
    Source for Version 1
    Tests for Version 1
-------------------------------
Branch 2 - Version 2
    Source for Version 2
    Tests for Version 2

当新版本添加更多功能或更改行为时,应单独测试,并且应单独维护其来源!