Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在xUnit中获取测试类的实例_C#_Xunit - Fatal编程技术网

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_方法的不同迭代之间传递测试数据