Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 您建议采取哪些步骤将TDD转换为BDD?_Unit Testing_Tdd_Bdd - Fatal编程技术网

Unit testing 您建议采取哪些步骤将TDD转换为BDD?

Unit testing 您建议采取哪些步骤将TDD转换为BDD?,unit-testing,tdd,bdd,Unit Testing,Tdd,Bdd,如果您想将您的开发过程从测试驱动的开发转移到您会选择或推荐的路径 您可能面临哪些挑战?随着范式的改变、思维过程的转变以及项目执行前景的改变,推动开发过程本身将是一项巨大的任务 有没有人有过让这种转变顺利进行的实际经验(嗯……可能不是那么顺利) 还是有人想改变 我理解这可能不适用于每一件事。但是,如果有人需要朝着这个方向发展,那么合乎逻辑的步骤是什么呢 我从下面的文章中只得到了关于BDD的基本信息。 我要寻找的关键点是: 需要什么样的开发人员培训 SDLC流程是否有任何重大变化 您推荐哪些BD

如果您想将您的开发过程从测试驱动的开发转移到您会选择或推荐的路径

您可能面临哪些挑战?随着范式的改变、思维过程的转变以及项目执行前景的改变,推动开发过程本身将是一项巨大的任务

有没有人有过让这种转变顺利进行的实际经验(嗯……可能不是那么顺利)

还是有人想改变

我理解这可能不适用于每一件事。但是,如果有人需要朝着这个方向发展,那么合乎逻辑的步骤是什么呢

我从下面的文章中只得到了关于BDD的基本信息。

我要寻找的关键点是:

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

编辑: 关于.NET的BDD框架,我是在这么多年前看到这篇文章的
据我所知。。。BDD是看待TDD的一种新方法。这与其说是一项新技术,不如说是一种思想上的转变


我的意思是,从技术上讲,您可以使用单元测试工具来进行BDD

行为驱动开发是一种现代敏捷工具,它使您的公司能够重新评估开发人员的核心能力,以便找到更好的沟通方式,增加管理愿景的交叉,这将使您能够在本质市场地位的全新层面上高效地创造价值。
从测试驱动开发的思维方式转变体现了一种范式转变,包括深入的工作流分析、通过最先进的敏捷方法不断反馈,以及对底层行为场景转换矩阵的仔细关注。

您可能想听听

最有趣的事情Scott Bellware说:“测试驱动开发就是设计”


这本书让他“兴奋不已”:(对于.NET开发人员,请听播客了解上下文)

当我开始研究BDD时,我调查了所有的框架(对于.NET),结果没有使用任何框架。主要原因是我觉得社区还没有确定语法和最佳实践,所以我继续使用NUnit和基于Ben Scheirman的。这非常有效,因为BDD不是关于工具,而是让测试变得清晰易懂,这在nunit这样的普通工具中是完全可能的

与我以前的单元测试相比,新样式更具可读性,并且更加关注命名和行为。我们离打印出方法名称并与业务人员讨论该系统还不远

Scott Bellware的一些补充阅读:

测试示例:

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)
    }
}
事实上甚至不是这样(一种心理上的转变):它更像是一种术语上的转变,使术语与实际的心理模型保持一致。BDD基本上是发明出来的,当时几位主要作者意识到他们所有的TDD书籍都是从一章开始的,“这本书不是关于测试…”