모의 객체 내의 메소드가 예상 객체 매개 변수와 함께 호출되는지 확인하려고합니다. Moq, nUnit을 사용하고 있으며 AutoFixture의 닮은 점이 작업을 완료해야한다고 생각합니다. 아래는 내가하려는 일의 단순화 된 버전입니다.확인을 사용하여 Moq mock 클래스의 예상 매개 변수 값을 확인하십시오.
AutoFixture에서이 작업을 수행 할 수있는 방법이 있습니까? 해당 매개 변수로 Something
이 호출되는지 확인하는 더 좋은 방법이 있습니까? 그러나 나는 오히려 내 프로젝트에서 같은 모든 클래스에서 같음을 무시하지 않는 게 좋을,
barMock.Verify(m => m.Something(a));
패스 :
재정은 속성 값을 비교에 Verify
라인을 변경하기 위해 A
클래스 같음. 기본 검사로 Verify
MOQ에서
namespace Test
{
using Moq;
using NUnit.Framework;
using Ploeh.SemanticComparison.Fluent;
public class A
{
public int P1 { get; set; }
}
public interface IBar
{
void Something(A a);
}
public class Foo
{
public A Data { get; private set; }
public void DoSomethingWith(IBar bar)
{
Data = new A { P1 = 1 };
bar.Something(Data);
}
}
[TestFixture]
public class AutoFixtureTest
{
[Test]
public void TestSample()
{
var foo = new Foo();
var barMock = new Mock<IBar>();
var a = new A { P1 = 1 };
var expectedA = a.AsSource().OfLikeness<A>();
foo.DoSomethingWith(barMock.Object);
expectedA.ShouldEqual(foo.Data); // passes
barMock.Verify(m => m.Something(expectedA.Value)); // fails
}
}
}
+1 특히 마지막 해결 방법은 유사성을 가진 올바른 접근법입니다. FWIW에는 Equence를 오버라이드하는 프록시를 동적으로 생성 할 수있게하기 위해 Likeness의 새로운 기능을위한 작업 항목이 있습니다. 위의 구문을 크게 단순화합니다. http://autofixture.codeplex.com/workitem/4230 –
감사합니다. ! – jaminto