我正在使用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就可以了。我真的不想这样做,有没有办法保持我的意思?
答案 0 :(得分:4)
只需使用u
直接告诉编译器,该号码是System.UInt32
号码。
[TestCase(0u)]
[TestCase(11u)]
//...
或者:使用int作为参数并使用(uint)
进行强制转换