我试图编写一个测试,检查派生类中的方法是否未被错误覆盖.所以我尝试了以下内容.但无论我尝试什么,它似乎都不允许我"注入"我的对象.
[Theory]
[xxxData(new BaseClass())]
[xxxData(new DerivedClass())]
public void Test_Stuff(BaseClass obj)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
rob*_*i-y 10
假设我理解你的目标,我会看到两种方式:
InlineDataAttribute和传递类型使用MemberDataAttribute(xunit.net v1中的PropertyData)
[Theory]
[InlineData(typeof(BaseClass))]
[InlineData(typeof(DerivedClass))]
public void Test_Stuff(Type type/*BaseClass obj*/)
{
var obj = Activator.CreateInstance(type) as BaseClass;
CheckConstrain(obj);
}
[Theory]
[MemberData("GetObjects")]
public void Test_Stuff2(BaseClass obj)
{
CheckConstrain(obj);
}
public static IEnumerable<object[]> GetObjects
{
get
{
return new[]
{
new object[] { new BaseClass() },
new object[] { new DerivedClass() }
};
}
}
private static void CheckConstrain(BaseClass baseClass)
{
Assert.True(baseClass.Foo() <= 1);
}
Run Code Online (Sandbox Code Playgroud)另请参阅此相关答案将复杂参数传递给[Theory]
| 归档时间: |
|
| 查看次数: |
4238 次 |
| 最近记录: |