【发布时间】:2015-01-14 23:58:26
【问题描述】:
有谁知道 FakeItEasy 中的 Moq It.IsAny<T> 的等价物吗?
我想断言一个方法是用一个类型的实例调用的
v.Do(new Foo());
我试过了:
A.CallTo(() => v.Do(A<Foo>.Ignored)).MustHaveHappened();
但这也接受v.Do();
【问题讨论】:
标签: moq fakeiteasy
有谁知道 FakeItEasy 中的 Moq It.IsAny<T> 的等价物吗?
我想断言一个方法是用一个类型的实例调用的
v.Do(new Foo());
我试过了:
A.CallTo(() => v.Do(A<Foo>.Ignored)).MustHaveHappened();
但这也接受v.Do();
【问题讨论】:
标签: moq fakeiteasy
A<Foo>.Ignored(或A<Foo>._)中的您是对的,在起订量中相当于It.IsAny<Foo>。
如果你说的确实是正确的,你似乎遇到了一个错误。我会尽快处理的。
编辑 我创建了以下集成测试来重现该错误,但测试通过了,所以我无法重现它,您能否提供代码示例?
[Test]
public void Should_fail_assertion_when_overload_with_no_parameters_has_been_called_but_the_assertion_is_for_overload_with_parameters_but_ignoring_them()
{
// Arrange
var fake = A.Fake<ITypeWithOverloadedMethods>();
// Act
fake.Foo();
// Assert
Assert.Throws<ExpectationException>(() => A.CallTo(() => fake.Foo(A<int>._)).MustHaveHappened());
}
public interface ITypeWithOverloadedMethods
{
void Foo();
void Foo(int argument);
}
【讨论】: