2

我正在尝试为 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);
}

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

预期:好的
但是是:好的

怎么回事?两个结果的类型HttpStatusCode和值都是“OK”。如果我同时添加.GetValue()或添加.ToString()它们,则断言通过,但感觉会有所不同并且有些“代码气味”。

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

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

它通过了。

4

1 回答 1

4

Argggh..我已经被改头换面了..

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

using HttpStatusCode = System.Net.HttpStatusCode;

这里要吸取的教训:不要盲目地依赖工具来为你思考。

于 2013-09-30T12:04:45.417 回答