【发布时间】:2015-10-12 07:44:33
【问题描述】:
我有一个 C# api。现在我还需要它的 Java 实现。然后维护这两个api。
为了确保两种实现不会随着时间的推移而出现分歧,我想在它们之间共享相同的测试(不一定是单元测试,但至少是端到端测试)。
到目前为止,我可以想到两种不同的方法:
- 将两个实现都放在一个 rest api 后面,并通过它进行测试 api。优点是我可以对两者进行完全相同的测试 实施。缺点是放的有点重 地方。
- 使用行为驱动开发测试(Cucumber 用于 Java,SpecFlow 用于 C#),并使用相同的功能文件 对于不同的实现。缺点是我必须 提供每种语言的步骤实现,所以有 测试实际上存在细微差别的风险。
如果有任何想法以更令人满意的方式处理它,我将不胜感激。
【问题讨论】:
-
只是好奇 - 为什么有两个实现?
.Net现在是开源的,所有与基础设施相关的问题都可以通过 containerization 解决。同时,如果这些 API 将用作服务......语言无关紧要......? -
这些 API 不会用作服务。它是某种解析库,客户端在 ram 中使用它。问题是我们现在希望能够从 Java 程序中进行这种解析
标签: api unit-testing testing automated-tests integration-testing