Что вызывает метод Dispose () в модульном тесте c # MSTest? - PullRequest
0 голосов
/ 14 января 2019

В настоящее время я проверяю тестовый класс, который использует MSTest и реализует IDisposable. Сам тест проверяет пользовательский клиент и имеет экземпляр

MockHttpMessageHandler от RichardSzalay.MockHttp

, который реализует интерфейс IDisposable.

Следующий код был добавлен внизу класса и вызывается после каждого теста. Я ищу, чтобы подтвердить, что вызывает метод Dispose, который объявлен в тестовом классе

public void Dispose()
{
    _mockHttpHandler.Dispose();
}

1 Ответ

0 голосов
/ 14 января 2019

MSTest выполняет проверку преобразования типов с использованием оператора as, а затем вызывает метод Dispose в этом случае:

 private void RunTestCleanupMethod(object classInstance, TestResult result)
{
  MethodInfo methodInfo = this.Parent.TestCleanupMethod;
  try
  {
    try
    {
      if (methodInfo != null)
        methodInfo.InvokeAsSynchronousTask(classInstance, (object[]) null);
      Queue<MethodInfo> methodInfoQueue = new Queue<MethodInfo>((IEnumerable<MethodInfo>) this.Parent.BaseTestCleanupMethodsQueue);
      while (methodInfoQueue.Count > 0)
      {
        methodInfo = methodInfoQueue.Dequeue();
        if (methodInfo != null)
          methodInfo.InvokeAsSynchronousTask(classInstance, (object[]) null);
      }
    }
    finally
    {
      (classInstance as IDisposable)?.Dispose();
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...