Как получить экземпляр тестового класса в xUnit - PullRequest
0 голосов
/ 22 января 2020

Вот мой тестовый класс

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.
        }
    }
}

Как получить экземпляр Testclass в методе переопределения "Before" MyCustAttrib? Цель здесь - передать тестовые данные между различными итерациями Test_Method, используя поле testScenario в TestClass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...