unit-testing - 您建议从TDD转移到BDD的哪些步骤?

标签 unit-testing tdd bdd

如果要将开发过程从“测试驱动的开发”转移到Behavior-Driven Development,您将采取或建议的路径是什么?

您可能面临的挑战是什么?随着范式的改变,思想过程的转变以及项目执行前景的改变,移动开发过程本身将是一项艰巨的任务。

有没有人在使这一转变顺利进行方面有过真正的经验(嗯……可能不那么顺利)?

还是有人试图做出这种转变?

我了解这可能不适用于每个事物。但是,如果有人需要朝着这个方向前进,那将是合乎逻辑的一步。

我仅从以下SO帖子中获得有关BDD的基本信息。
Primary differnce between TDD and BDD

我要寻找的关键点是:

  • 需要什么样的开发人员培训?
  • SDLC流程是否有重大变化?
  • 您推荐使用哪些BDD工具(.net)?
  • 良好的BDD资源(.net)

  • 提前致谢。

    编辑:

    关于.NET的BDD框架,我在SO中遇到了这篇文章
    Most Mature BDD Framework for .NET

    最佳答案

    当我开始研究BDD时,我研究了其中的所有框架(用于.net),最终没有使用任何框架。主要原因是我觉得社区尚未确定语法和最佳实践,因此我继续将NUnit与Ben Scheirman的基于blog post的基类一起使用。这样做非常有效,因为BDD与工具无关,而是使测试清晰易懂,而使用nunit等常规工具完全可以做到。

    与我的旧单元测试相比,新样式更具可读性,并且更加关注命名和行为。我们并没有打印出方法名称,并且与业务人员就系统进行了讨论。

    Scott Bellware的其他一些阅读 Material :Behavior-Driven Development

    考试内容:

    public class WhenAddingLineItemToEmptyOrder : BDDBase
    {
        Order order;
    
        [SetUp]
        public void Arrange()
        {
            order = new Order();
        }
    
        public void Act() // called by BDDBase
        {
            LintItem item = new LineItem();
            item.Quantity = 1;
            item.Price = 10;
            order.AddLineItem(item);
        }
    
        [Test]
        public void TotalPriceShouldBeUpdated()
        {
            Assert.AreEqual(10, order.TotalPrice);
        }
    
        [Test]
        public void OrderCanBeCheckedOut()
        {
            Assert.IsTrue(order.CanBeCheckedOut)
        }
    }
    

    关于unit-testing - 您建议从TDD转移到BDD的哪些步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/462401/

    相关文章:

    java - 如何在单元测试(junit)中管理巨大的类和重构

    testing - BDD 和 UI 测试

    javascript - mocha js 断言在使用 promise 时挂起?

    transactions - EF4 Code First、TDD、CRUD 和事务

    c# - 单元测试自动实现的属性是否有值(value)

    c++ - 如何防止eclipse c/c++单元测试遇到XML解析错误导致runner挂起?

    java - 返回字符串的 Junit 测试函数

    python - 使用 Fast API python web 框架进行行为驱动开发 (BDD) 测试

    javascript - JavaScript 和 Mocha 的单元测试

    c# - Quartz.net 调度程序无法保持活力