我试图将Guid.Empty传递给我的单元测试:
[TestCase(null)]
[TestCase(Guid.Empty)]
public void When_AccountGuid_IsNullOrEmpty_AddError_Is_Invoked(Guid? accountGuid)
{
}
然而编译器抱怨:
属性参数必须是常量表达式,typeof表达式 或属性参数类型
的数组创建表达式
如何将Guid.Empty传递给我的单元测试方法?
我还尝试通过将其声明为类中的私有成员来解决问题,并使用相同的编译器错误:
private static Guid _emptyGuid = Guid.Empty;
[TestCase(null)]
[TestCase(_emptyGuid)]
public void When_AccountGuid_IsNullOrEmpty_AddError_Is_Invoked(Guid? accountGuid)
{
}
答案 0 :(得分:9)
在这种情况下,使用TestCaseSource
属性来定义案例列表。
static Guid?[] NullAndEmptyGuid = new Guid?[] { null, Guid.Empty };
[TestCaseSource("NullAndEmptyGuid")]
public void When_AccountGuid_IsNullOrEmpty_AddError_Is_Invoked(Guid? accountGuid)
{
}
答案 1 :(得分:-1)
实际上,Empty是一个变量,您无法在属性中传递变量。 表达式必须是常量,尝试传递“新Guid()”或默认(Guid)