c# - Fake It Easy - A<T>.Ignored() with string - A<string>.Ignored()

标签 c# fakeiteasy

我有一个带有字符串参数和 bool 返回值的方法。 我想确保它总是返回 true

我试过了

myClass.Foo(A<string>.Ignored)
 .WithReturnType<bool>()
 .Returns(true);

现在我得到以下异常

System.ArgumentException: The specified object is not recognized as a fake object. Result StackTrace: bei FakeItEasy.Core.DefaultFakeManagerAccessor.GetFakeManager(Object proxy) bei FakeItEasy.FakeFacade.GetFakeManager(Object fakedObject) bei FakeItEasy.Configuration.FakeConfigurationManager.CallTo(Object fakeObject) bei FakeItEasy.A.CallTo(Object fake) [...]

我做错了什么?

最佳答案

你没有告诉我们你是如何制作 myClass 的.它是你类(class)的一个实例吗?应该是假的。并且语法已关闭。

考虑 FakeItEasy tests 中的这个示例用法:

var foo = A.Fake<IFoo>();
A.CallTo(() => foo.Baz(null, null)).WithAnyArguments().Returns(99);

所以你的例子最终可能会是这样的

var myClass = A.Fake<MyClass>(); // or maybe IMyClass - if Foo isn't 
                                 // virtual, you'll have problems faking it
A.CallTo((() => myClass.Foo(null)).WithAnyArguments().Returns(true);

() => myClass.Foo(A<string>.Ignored) ,但我还没有尝试过。

关于c# - Fake It Easy - A<T>.Ignored() with string - A<string>.Ignored(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609627/

相关文章:

c# - FakeItEasy 是否支持部分模拟的想法?

c# - FakeItEasy:模拟方法未返回预期结果

c# - FakeItEasy:在不指定类型的情况下伪造对泛型方法的调用

c# - 仅使用 .NET 中可用的库/服务在 C# 中创建 XMPP/Jabber 服务器

c# - 如何更改 DevExpress GridView 中一行的背景颜色?

c# - 使用 Json.NET 将任何类型的对象转换为 JObject

c# - 使用 FakeItEasy,有没有办法伪造只写属性的 setter ?

c# - 如何循环控制台应用程序

c# - 使用 Null SOAP WSDL

c# - 对同一对象调用两次 MustHaveHappened 失败