使用Lettuce的BDD测试可以替换项目中的所有其他形式的测试吗?

Geo*_*Geo 7 python testing bdd

我喜欢生菜,还有用它测试的感觉.我可以用Lettuce功能替换项目中的所有测试(doctests/unit tests)吗?

And*_*ite 8

简而言之,没有.

我没有使用Lettuce,但你的问题同样适用于其他BDD框架,如Cucumber.

这种方法被认为是不好的做法,因为集成测试运行速度较慢,维护工作比单元测试要多.

此外,Gherkin语法的一大优势在于它可以被非技术利益相关者读取,并且可以专注于业务规则,而单元测试通常处理类/功能级别的详细实现细节,而不是特定于业务的利益相关者特别感兴趣.

单元测试和集成/验收测试之间有时会有重叠,但一般来说,您应该寻找适当的平衡点.


AlS*_*Ski 2

我不得不不同意安迪的观点。

我确实同意,应该在适当的时间进行适当的测试,并且单元测试(即不与单元之外的任何内容交互的测试)不会取代所有其他形式的测试。

但这并不一定意味着通过适当的分离,您不能使用 BDD 框架(我也没有使用 Lettuce)作为测试的运行程序。

我也非常喜欢这样一个事实,即 Gherkin 语法可以被推回给业务专家、测试人员和发起人,作为捕获要遵循的流程的一种手段,所以我认为一组规范不能针对单元级别,但另一个可能针对系统和回归级别。

考虑这个(做作的,显然还不够细化)示例

  • 鉴于我的测试服务器已更新为昨晚的版本
  • 当我运行回归测试包 1 时
  • 那么我的回归结果应该与regressionTestPack1的已知结果相匹配

我也并不是说这在任何情况下都是合适的。您应该评估与将所有测试留在不同的测试运行系统中相比,从这种方法中获得的好处。特别要考虑执行测试的人员的经验基础。

因此,如果您正在编写一个小型技术项目,作为唯一的开发人员并且您更喜欢这种语法,那么没有理由不这样做。只是要非常小心,您仍然将单元测试与系统测试和回归测试隔离开来。

然而,如果您是一个由开发人员、测试人员、业务分析师组成的大型团队的一员,那么您的案例将需要更加有力,并且不太可能真正有效。