3

私は 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!

何か案は?

4

1 に答える 1

0

GetById は long パラメータを受け入れるため、セットアップ メソッドで long に変更して解決しました。当たり前!

于 2012-11-28T14:18:57.823 に答える