unit-testing - 测试 HttpStatusCode 时,使用 nUnit 测试 Nancy 模块断言失败

标签 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);
}

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

Expected: OK
But was: OK

WTF? 两个结果的类型均为 HttpStatusCode 且值为“OK”。如果我将 .GetValue().ToString() 添加到它们两者中,断言会通过,但感觉会有所不同 hack-y 以及一些东西“代码气味”。

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

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

一切顺利。

最佳答案

Argggh....我已经被改造了..

我刚刚在文件顶部发现了这个,我确信我自己没有把它放在那里。

using HttpStatusCode = System.Net.HttpStatusCode;

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

关于unit-testing - 测试 HttpStatusCode 时,使用 nUnit 测试 Nancy 模块断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19093520/

相关文章:

delphi - 最小枚举大小在 Delphi 中不起作用

c# - 在几种情况下为真的单元测试断言

visual-studio-2013 - 如何调试单个 Nunit 测试 Visual Studio 2013

使用 faker 进行 python 假设单元测试

matlab - 在 Matlab 中显示单元测试成功的消息

c - 了解标识符的链接

java - 是否将枚举更改为类中断二进制兼容性

c# - 如何使用 ITestFilterService 和/或 ITestFilterBuilder 以编程方式为 NUnit 3 创建自定义过滤器

unit-testing - 如何在单元测试中模拟 AngularFire 2 服务?

c# - 使用 Moq 验证采用委托(delegate)参数的基类中的方法调用