我在最小起订量中遇到了一个非常奇怪的行为,我不明白这是一个错误还是我做错了什么。这是示例:
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 不等于 transactions1,所以它肯定是不同的列表。但是,当使用不同的参数(transactions0 和 transactions1)调用时,mock 会两次返回投资组合交易 1。我试图找出问题所在,但我没有找到任何原因。然后我在每个列表中添加了虚拟元素并修复了它,模拟开始按计划返回不同的值。这是 Mock 的错误还是我没有得到什么?据我了解,列表中的值根本不应该影响它。
PS我不知道它是否重要但方法接受IEnumerable<CustomerDataTransaction>