有没有办法在Mock上列出所有模拟的方法(设置)?
让我们说,我创建了如下的模拟:
Mock<IAnInterface> aMock = new Mock<IAnInterface>();
aMock.Setup(am => am.Execute()).Returns(true);
现在,我需要找到Execute
上是否设置了aMock
?
答案 0 :(得分:1)
Mock <>类型将具有一个名为'Setups'的私有Moq.SetupCollection。 Moq.SetupCollection有一个名为“ setups”的私有List
或者您可以通过反射来实现:
var bindings = BindingFlags.Instance | BindingFlags.NonPublic;
var setupCollectionProperty = Mapper.GetType().GetProperty("Setups", bindings);
var setupCollection = setupCollectionProperty.GetValue(Mapper);
var setupList = setupCollection.GetType().GetField("setups", bindings);
var setups = setupList.GetValue(setupCollection);
答案 1 :(得分:0)
我不知道询问MOQ(以编程方式)关于配置了哪些设置的方法,但是,在测试失败的详细信息中,运行MOQ 4.0,它确实列出了哪些设置已配置。