我正在考虑如何构建验收测试的两种不同方法。我们有一个调用服务层的 Silverlight 项目(我拥有双方)。由于 Silverlight 的方式,调用 Silverlight 程序集的测试代码必须位于与其他非 Silverlight 测试不同的测试项目中。
1) 采用我们提出的所有验收标准并将它们放入功能文件中。使用标签标记场景以指定它们将在其中运行的环境(@server、@client 等)。在功能文件中也包括手动测试,并用@manual 标签标记它们。
优点:由 BA 编写的所有测试都将集中在一个地方供他们查看和编辑
缺点:使用单元测试或集成测试来测试某些场景可能更有意义,而 NUnit 可能是比 SpecFlow 更好的工具
2) 为所有内容编写验收标准,然后在 SpecFlow 中自动化一些,一些使用单元测试,一些使用集成测试等。只有 SpecFlow 自动化的场景才会在 SpecFlow 中。我们可以将单元测试、集成测试或手动测试的场景放在功能文件中,但这些场景实际上不会运行任何代码,它们只是用于文档目的。
优点:开发人员的摩擦和开销更少。我们将使用我们为每个测试提供的最佳工具来自动化不同的测试。
缺点:我们必须让 SpecFlow 不运行的场景与任何自动化它们的代码保持同步。
想法?还有另一种我没有想到的方法吗?你怎么做呢?