【问题标题】:Does test-driven development consider a part of behavior-driven development?测试驱动开发是否考虑了行为驱动开发的一部分?
【发布时间】:2012-04-03 07:52:50
【问题描述】:

更准确地说,编写单元测试是否被视为 BDD 实践?

Unite testing 是考虑作为 BDD/TDD 的一部分还是两者兼而有之?

【问题讨论】:

    标签: unit-testing tdd bdd


    【解决方案1】:

    有几种类型的测试:单元测试、验收测试、集成测试。并且有几种开发实践,例如 TDD 或 BDD。因此,BDD 不仅仅是关于验收测试。 BDD可以做到单元测试级别。以下是Dan North thoughts 在谈到单元测试时关于 BDD 和 TDD 之间的区别的一些内容:

    • 测试方法名称应该是句子(去掉“测试”这个词)
    • 专注于行为句模板(以“Should”或“ShouldNot”开头的测试名称)

    针对不同类型的测试有不同的 BDD 框架。例如。 SpecFlow 用于验收 BDD,或NSpec 用于单元级 BDD。

    所以,回答你的问题:

    • 如果单元测试以 BDD 风格完成,那么编写这些测试就是 BDD 实践
    • 同样,如果我们不是在谈论验收测试,单元测试可能是 BDD 的一部分。请记住,单元测试可以与 TDD/BDD 分开进行,例如当您为现有代码编写测试时。

    【讨论】:

    • 我认为我见过的大多数单元测试更多地关注实现细节而不是它们的功能行为。这些类型的测试往往是脆弱的和不必要的具体。当测试更多地关注需要发生的事情而不是事情如何完成时,您的单元测试会找到类似于 BDD 的共同点。
    • 同意。过去几年,我倾向于以人类可读的实时文档的方式编写测试,这不依赖于实现。但一开始我也使用了像 TestMethodFoo 这样的名字,在简单重命名 MethodFoo 后变得一团糟:)
    猜你喜欢
    • 1970-01-01
    • 2011-09-09
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2014-07-05
    相关资源
    最近更新 更多