Я использую MicrosoftTestTools.У меня есть класс A, содержащий [TestMethod] и [ClassInitialize].
[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
Setup(context);
}
Определение для установки присутствует в классе B (базовый класс класса A).
public static void Setup(TestContext context)
{
something
}
[TestCleanUp] присутствует в классе B.
[TestCleanup]
public void TestCleanUp()
{
if (TestContext.CurrentTestOutcome == UnitTestOutcome.Failed){}
}
Чтобы получить TestContext в методе TestCleanUp, я создал свойство, как показано ниже в классе B.
public TestContext TestContext { get; set; }
Это работало нормально.Но когда я изменил объявление следующим образом:
public `TestContext CurrentContext{ get; set; }`
Итак, функция вроде
[TestCleanup]
public void TestCleanUp()
{
if (CurrentContext.CurrentTestOutcome == UnitTestOutcome.Failed){}
}
CurrentContext равна нулю.Как здесь работает недвижимость?Это работает только тогда, когда имя TestContext.Я наивен в программировании на C #.