将UInt32作为参数传递给TestCase NUnit

时间:2017-10-28 11:50:56

标签: c# unit-testing nunit

我正在使用NUnit 3.8.1,我正在尝试进行一项非常简单的测试:

    [TestCase(0)]
    [TestCase(11)]
    [TestCase(12)]
    [TestCase(13)]
    [TestCase(14)]
    public void GivenUserCreatesPinWhenItIsInWrongPositionThenThrowArgumentException(uint position)
    {
        //Assert
        Assert.Throws<ArgumentException>(() =>
        {
            new PositionPin(position);
        });
    }

我得到了这个例外:

  

消息:System.ArgumentException:类型&#39; System.Int32&#39;的对象无法转换为&#39; System.UInt32&#39;

只要我用int更改uint并将int转换为uint就可以了。我真的不想这样做,有没有办法保持我的意思?

1 个答案:

答案 0 :(得分:4)

只需使用u直接告诉编译器,该号码是System.UInt32号码。

[TestCase(0u)]
[TestCase(11u)]
//...

或者:使用int作为参数并使用(uint)

进行强制转换