Как проверить, что конкретный метод передается в смоделированный метод - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть следующий метод в моем тестируемом классе .

public Task MethodToTest(string p)
{
   await dependency.SomeMethodAsync(() => dependency.AnotherMethodAsync(p));
}

В настоящее время я пытаюсь проверить, возможно ли проверить, что dependency.SomeMethodAsync действительно вызывается сdependency.AnotherMethodAsync в качестве параметра.

Мне удается хорошо смоделировать первый метод в моем тесте.

mockedDependency.Setup(d => d.SomeMethodAsync(It.IsAny<Func<Task>>())).ReturnsAsync(...);

var response = await myClass.MethodToTest(string.Empty);

Однако мне не удается найти способ (если возможно) проверить AnotherMethod вызов.После компиляции, но выдает мне NotSupportedException: Неподдерживаемое выражение .

mockedDependency.Verify(s => s.SomeMethodAsync(() => s.AnotherMethodAsync(string.Empty)), Times.Once);

Любые мысли о том, как (и если) это можно проверить?

1 Ответ

0 голосов
/ 06 февраля 2019

Заменить mockedDependency.Verify(s => s.SomeMethodAsync(() => s.AnotherMethodAsync(string.Empty)), Times.Once);

двумя отдельными строками:

var v = mockedDependency.Object.AnotherMethodAsync(string.Empty);
mockedDependency.Verify(s => s.SomeMethodAsync(v), Times.Once);

И, возможно, вам придется настроить макет для AnotherMethodAsync.

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