0
기본적으로 함수를 스텁하고 싶지만 참조 유형 매개 변수에 대해 내 자신의 동등 비교자를 정의해야합니다.함수를 스텁 및 참조 유형 매개 변수에 대한 동등 비교 자 정의하는 방법
데이터를 반환하는 함수를 스텁 싶습니다. 메서드의 매개 변수를 ReferenceEquals 대신 특정 값으로 비교하기를 원합니다. 또한 매개 변수 참조 유형에 equals override를 작성하고 싶지 않습니다. 나는 이것을 달성하는 방법이 아래에 있다고 생각하지만 예외를 받고있다. 이것을 할 또 다른 방법이 있습니까? 그리고/또는 내가 여기서 잘못하고있는 것이 있습니까?
예외 메시지 : System.Reflection.AmbiguousMatchException : 모호한 일치가 발견되었습니다.
public class Parameter
{
public string Property1 { get; set; }
}
public interface IStubbable
{
string DoStuff(Parameter param);
}
public class ThisService
{
private IStubbable _stubbable;
public ThisService(IStubbable stubbable)
{
_stubbable = stubbable;
}
public string DoTheStuff(Parameter param)
{
return _stubbable.DoStuff(param);
}
}
[Test]
public void TestStubbing()
{
const string expectedResult = "Totes";
var iStub = MockRepository.GenerateStub<IStubbable>();
const string prop1 = "cool stub bro";
iStub
.Stub(x => x.DoStuff(Arg<Parameter>.Matches(y => y.Property1 == prop1)))
.Return(expectedResult);
var service = new ThisService(iStub);
var result = service.DoTheStuff(new Parameter() {Property1 = prop1});
Assert.AreEqual(expectedResult, result);
}
당신이 당신의 대답을 받아 들일 수 있습니까? –