Проверка метода получила вызов со списком в качестве параметра - PullRequest
0 голосов
/ 04 июня 2019

У меня есть сервисный метод, который вызывает метод репозитория;например:

public async Task<bool> MyMethod(string param1, string param2)
{
    var result = myRepository.Where(x => x.param1 == param1).ToList();
    await myRepository.doStuff(result);

Я пытаюсь написать тест, который в настоящее время выглядит следующим образом:

var data = new List<MyData>() {new MyData {param1 = "1", param2 = "test"}};
var myRepository = Substitute.For<IMyRepository>();
myRepository.Where(x => x.param1 == "1").ReturnsForAnyArgs(data);

var myService = new MyService(myRepository);

bool w = myService.MyMethod("1", "2");

await myRepository.Received().doStuff(data);

Однако я получаю сообщение об ошибке:

Сообщение: NSubstitute.Exceptions.ReceivedCallsException: Ожидается, что будет получен соответствующий вызов: doStuff (List ) Фактически не получено ни одного соответствующего вызова.Получен 1 несовпадающий вызов (несоответствующие аргументы, обозначенные символами '*'): doStuff (* List *)

Я также пробовал синтаксис утверждения, такой как:

await myRepository.Received().doStuff(Arg.Is<List<MyData>>(data));

Но это не имеет значения.Я что-то здесь упустил или что-то не так с тем, как я проверяю список.Я предполагаю, что это связано с тем, как сравниваются два списка, и поэтому они не выглядят одинаково, но если я не ошибаюсь, они абсолютно одинаковы.

...