我有一个带有字符串参数和 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)
,但我还没有尝试过。
我是一名优秀的程序员,十分优秀!