【发布时间】:2015-09-24 19:57:14
【问题描述】:
使用 xUnit 时,如果我输入代码:
public static IEnumerable<object[]> TestCases
{
// test data
}
[Theory, PropertyData("TestCases")]
public void Test(// some parameter){}
编译器/resharper(我不确定是什么使它起作用)知道“TestCases”(构造函数中的字符串参数)是我定义的静态属性TestCases。
其背后的机制是什么?
感谢cmets。
这是我观察到的。 如果没有具有该名称的相应成员,则该字符串将突出显示为错误。 似乎是关于 R#,当我关闭它时,错误将不再出现。
【问题讨论】:
-
“知道”是什么意思?你在观察什么? (通过反省你的代码,这几乎可以肯定是 R# 很聪明......)
-
“知道”什么时候?元数据是一个强大的功能,但只有当你检查类型时
-
你的意思是xUnit知道它应该通过调用TestCases方法/属性来获取测试用例,因为你用
PropertyData("TestCases")装饰了你的测试方法? -
我怀疑这意味着“知道”,如果没有具有该名称的相应成员,则该字符串被突出显示为错误。这就是 R# 对 NUnit
ValueSource属性所做的事情。 -
整个事情都依赖于 xUnit R# 扩展。早上我会为你写一个解释。
标签: c# visual-studio resharper xunit