У меня проблема с методами имитации. См. Ниже:
Это интерфейс
public interface IShop
{
string CheckNames(string[] names);
}
Вот мой макет
var names = "A,B,C";
var shopMock = new Mock<IShop>(MockBehavior.Strict);
shopMock.Setup(s => s.CheckNames(names.Split(','))).Returns("GoodNames");
Однако когда я звоню этот метод в моем тесте, этот метод завершился неудачно с Moq.MockException: IShop.CheckNames (["A", "B", "C"]) не удалось вызвать фиктивное поведение Strict.
var obj = shopMock.Object;
Assert.AreEqual("GoodNames", obj.CheckNames(names.Split(',')));
Чтобы он работал, мне нужно
var names = "A,B,C";
var shopMock = new Mock<IShop>(MockBehavior.Strict);
var nameList = names.Split(',');
shopMock.Setup(s => s.CheckNames(nameList)).Returns("GoodNames");
var obj = shopMock.Object;
Assert.AreEqual("GoodNames", obj.CheckNames(names.Split(',')));
Почему мне нужно создать здесь nameList, чтобы он работал? Спасибо