У меня есть доменные классы, которые ссылаются на System.Diagnostics.Activity.Current.Id в моем веб-интерфейсе API. Это значение используется в качестве идентификатора корреляции после сериализации объекта и его сохранения в Космосе. У меня нет проблем с получением этого значения при совершении вызовов в API. Однако если я попытаюсь сослаться на это значение в моих модульных тестах домена, System.Diagnostics.Activity.Current будет нулевым. Я попытался установить его в моих функциях модульного теста, но в моем домене он все еще пуст.
System.Diagnostics.Activity.Current = new System.Diagnostics.Activity("MyUnitTests");
Я знаю, что System.Diagnostics.Activity.Current запускается из текущего HttpContext, но в моих модульных тестах домена также нет текущего http-контекста. Как я могу заставить это работать с моими юнит-тестами?
Пример: Класс домена
public class Company
{
public int CompanyId { get; private set; }
public string Name { get; private set; }
public string CorrelationId { get { return System.Diagnostics.Activity.Current.Id; } }
}
Юнит-тест
[TestMethod]
public void MyTest()
{
Company c = new Company();
Assert.AreNotEqual(string.Empty, c.CorrelationId);
}
Этот модульный тест выдает исключение нулевой ссылки, поскольку System.Diagnostics.Activity.Current имеет значение null.