Moq中有一种新语法,允许我使用
var newMock = Mock.Of<IInterface>(m => m.GetSomeValue() == value);
有时我自己不创建模拟(例如使用AutoData Theories时)。然后我必须使用旧语法设置模拟
existingMock.Setup(m => m.GetSomeValue()).Returns(value);
我不喜欢这个有两个原因
- 它的可读性较差(恕我直言)
- 它迫使我混合新旧语法。
我更愿意使用类似的东西来设置现有的模拟
existingMock.SetupUsingNewSyntax(m => m.GetSomeValue() == value);
- 这可能吗?
- 如果没有,是否在路线图上?
我假设也将为现有的模拟引入新的语法。 - 如果没有,我怎么能自己实现呢?
我已经知道如何使用Mock.Get<>()
and Mock.Of<>()
,以及 mocks 和 mock 对象是如何相关的。
Moq 也是迄今为止第一个也是唯一一个向 Mocks 提供 Linq 的框架,因此可以更简洁地实现上述相同的行为
由于现在有两种方法可以创建和设置新的模拟,旧的方式和新的简洁方式,我希望它能够延续并包括设置现有的模拟。