是否有可能让NUnit测试夹具中的方法类似于BDD样式给定,何时,那么?

时间:2013-01-29 23:41:26

标签: c# nunit bdd

我希望我的测试夹具看起来像这样:

public class Adding_two_and_three
{
    [Given]
    public void Two_and_three()
    {
         ....
    }
    [When]
    public void Adding_Them()
    {
        ...
    }
    [Then]
    public void Result_should_be(5)
    {
        ...
    }
分别使用GivenThen属性可以实现

TestFixtureSetUpTestThen - 方法的参数也可以使用Values属性来完成。但是有没有使用NUnit的When - 方法?另请注意,我希望能够使用多个Then方法,因此When方法只能执行一次。

2 个答案:

答案 0 :(得分:1)

免责声明:有效,但在尝试之前我会先查看其他框架。

我在NUnit中以与G / W / T方法类似的方式编写了一些测试,但看起来更像是这样:

[TestFixture]
public class Adding_two_and_three
{
    [TestFixtureSetUp]
    public void Given_two_and_three()
    {
        // ...
    }

    [SetUp]
    public void Two_and_three()
    {
        // ...
    }

    [Test]
    public void Result_should_be(int expected = 5)
    {
        // ...
    }
}

与传统的G / W / T测试装置相比,这种方法可能会遇到许多弊端,但如果这对您有用,那就太棒了! :)

答案 1 :(得分:0)

刚刚意识到可以将构造函数用作Given,将TestFixtureSetUp用作When,将Test用作Then

public class Adding_two_and_three
{
   [Given]
   public Adding_two_and_three()
   {
     ....
   }

   [When]
   public void Adding_Them()
   {
     ...
   }

   [Then]
   public void Result_should_be(5)
   {
     ...
   }
}

这解决了这个问题,但会限制Given的命名,这不是最佳的。