私は Moq を使用しており、モック メソッドを作成しようとしているリポジトリがあります。GetAll メソッドは値を返しますが、GetById は null を返します。
var currencyRepo = new Mock<ICurrencyRepository>();
var currencies = new List<Currency>{new Currency
{
CurrencyCode = "USD",
CurrencyId = 1,
},
new Currency
{
CurrencyCode = "EUR",
CurrencyId = 2
}};
currencyRepo.Setup(c => c.GetAll()).Returns(currencies);
currencyRepo.Setup(c => c.GetById(It.IsAny<int>())).Returns((int i) => currencies.Single(c => c.CurrencyId == i));
var currency = currencyRepo.Object.GetById(1); //This always returns null
//currency is always null
//but calling the GetAll method works!
var currencyList = currencyRepo.Object.GetAll(); //this works!
何か案は?