C# 如何在xUnit中获取测试类的实例
这是我的测试课C# 如何在xUnit中获取测试类的实例,c#,xunit,C#,Xunit,这是我的测试课 namespace MyNamespace { public class TestClass : TestBase { public TestClass(ITestOutputHelper output, TestScenario tScenario): base(output, tScenario) { } [Theory] [MyCustAttrib("data")]
namespace MyNamespace
{
public class TestClass : TestBase
{
public TestClass(ITestOutputHelper output, TestScenario tScenario): base(output, tScenario)
{
}
[Theory]
[MyCustAttrib("data")]
[MemberData(nameof(GetTestData))]
public void Test_Method(string arg1, string arg2)
{
//Assign
//Act
//Assert
}
}
public abstract class TestBase : XunitContextBase, IClassFixture<TestScenario>
{
public TestScenario testScenario = null;
public TestBase(ITestOutputHelper output, TestScenario tScenario) : base(output)
{
testScenario = tScenario;
}
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple =false, Inherited =true)]
public class MyCustAttrib : BeforeAfterTestAttribute
{
private string id;
public MyCustAttrib(string id)
{
id = id;
}
public override void Before(MethodInfo methodUnderTest)
{
base.Before(methodUnderTest);
//TO-DO
//Access testScenario field of the runtime instance of TestClass.
}
}
}
名称空间MyNamespace
{
公共类TestClass:TestBase
{
公共TestClass(ITestOutputHelper输出,TestScenario tScenario):基(输出,tScenario)
{
}
[理论]
[MyCustAttrib(“数据”)]
[成员数据(名称(GetTestData))]
公共无效测试方法(字符串arg1、字符串arg2)
{
//分配
//表演
//断言
}
}
公共抽象类TestBase:XunitContextBase,IClassFixture
{
公共TestScenario TestScenario=null;
公共测试库(ITestOutputHelper输出,TestScenario):库(输出)
{
testScenario=tScenario;
}
}
[AttributeUsage(AttributeTargets.Method,AllowMultiple=false,Inherited=true)]
公共类MyCustAttrib:BeforeAfterStatAttribute
{
私有字符串id;
公共MyCustAttrib(字符串id)
{
id=id;
}
公共覆盖之前无效(MethodInfo methodUnderTest)
{
基础。之前(测试中的方法);
//待办事项
//访问TestClass的运行时实例的testScenario字段。
}
}
}
如何在MyCustAttrib的“Before”覆盖方法中获取Testclass实例?
这里的目标是使用TestClass的testScenario字段在test_方法的不同迭代之间传递测试数据