2013-07-12 3 views
1

문자열 매개 변수와 bool 반환 값이있는 메소드가 있습니다. 지정된 객체가 가짜 객체로 인식되지 않습니다 : 나는 항상 내가Fake It Easy - A <T>.Ignored() with string - A <string>.Ignored()

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

가 지금은

System.ArgumentException 다음과 같은 예외가 시도 사실

반환되도록하려면 . 결과 스택 트레이스 : BEI FakeItEasy.Core.DefaultFakeManagerAccessor.GetFakeManager (객체 프록시) BEI FakeItEasy.FakeFacade.GetFakeManager (fakedObject 객체) BEI FakeItEasy.Configuration.FakeConfigurationManager.CallTo (객체 fakeObject) BEI FakeItEasy.A.CallTo (개체 가짜) [...]

내가 뭘 잘못하고 있니?

답변

3

myClass을 어떻게 작성하는지 표시하지 마십시오. 그것은 당신의 수업의 인스턴스입니까? 가짜 여야합니다. 구문은 사용하지 않습니다.

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)처럼되는 일을 끝낼 것입니다,하지만 난 그것을 시도하지 않았습니다.

0
난 당신이 동일하지만, 후자는 더 읽을 A<string>._에 의해 A<string>.Ignored을 대체 할 수있다 (블레어 콘라드 말한대로)의 완전성에 짧은 형식에 대한

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

가고 좋을 것