在测试HttpStatusCode时,使用nUnit测试Nancy模块会失败断言

时间:2013-09-30 11:51:39

标签: unit-testing enums nunit nancy

我正在尝试为Nancy项目编写测试。我已经将我的测试剥夺了基础,但仍然得到一个看似奇怪的结果。

模块:

public class HomeModule : BaseModule
{
    public HomeModule(IUserMapper mapper)
    {
        Get["/"] = "Hello, world!";
    }
}

测试:

[Test]
public void Home_Index_should_return_response_OK()
{
    var result = GetBrowser().Get("/", with => with.HttpRequest());

    Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
}

断言失败并显示以下消息:

  

预期:好的     但是:好的

WTF?两种结果都是HttpStatusCode类型,值为“OK”。如果我同时向他们添加.GetValue().ToString(),那么断言会通过,但感觉会有所不同 hack-y 以及“代码闻到”的东西。

起初我认为这可能是nUnit和测试枚举的怪癖但是当我尝试这样的事情时:

var value = ActionTargets.Suite;
Assert.AreEqual(ActionTargets.Suite,value);

它过得很好。

1 个答案:

答案 0 :(得分:4)

Argggh ....我已被重新庇护......

我刚刚在文件的顶部找到了这个,我确定我自己没有把它放在那里。

using HttpStatusCode = System.Net.HttpStatusCode;

这里要学到的教训:不要盲目地依靠工具来为你思考。