moq で非常に奇妙な動作に遭遇しましたが、それがバグなのか、何か間違ったことをしているのか理解できません。次に例を示します。
List<CustomerDataTransaction> transactions0 = GetTransactionsSomehow();
List<CustomerDataTransaction> transactions1 = GetTransactionsSomehow();
var portfolioTransactions0 = new List<IPortfolioTransaction>();
var portfolioTransactions1 = new List<IPortfolioTransaction>();
m_TransactionMapperMock
.Setup(m => m.CreatePortfolioTransactions(transactions0))
.Returns(portfolioTransactions0);
m_TransactionMapperMock
.Setup(m => m.CreatePortfolioTransactions(transactions1))
.Returns(portfolioTransactions1);
transaction0がtransaction1と等しくないことを確認したので、確かに異なるリストです。しかし、モックは異なるパラメーター (transactions0 と transactions1) で呼び出されると、portfolioTransactions1 を 2 回返します。何が悪いのか調べてみましたが、理由がわかりませんでした。次に、各リストにダミー要素を追加しました。これで修正され、モックは計画どおりに異なる値を返し始めました。これはモックのバグですか、それとも何かわかりませんか? 私が理解している限り、リスト内の値はまったく影響しないはずです。
PS重要かどうかはわかりませんが、メソッドは受け入れますIEnumerable<CustomerDataTransaction>