Sahte içindeki bir yöntemin beklenen nesne parametresiyle çağrıldığını doğrulamaya çalışıyorum. Moq, nUnit kullanıyorum ve AutoFixture'ın benzerliğinin işi bitirmesi gerektiğini düşünüyorum. Aşağıda, yapmaya çalıştığım şeyin basitleştirilmiş bir sürümüdür.Moq mock sınıfında beklenen parametre değerlerini doğrulamak için Doğrulamayı Kullanma
Bunu AutoFixture ile yapmanın bir yolu var mı? Something
'un uygun parametreyle çağrıldığını doğrulamanın daha iyi bir yolu var mı? Ancak Doğrusu benim projesinde A gibi her sınıfta Eşittir geçersiz istemem,
barMock.Verify(m => m.Something(a));
geçiş:
geçersiz kılma özellik değerlerini karşılaştırabilir ve Verify
hattını değişen A
sınıfında Eşittir. Varsayılan kontrolleri ile Verify
Adedi
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 Özellikle son çözüm, Benzerlik ile doğru yaklaşımdır. Http://autofixture.codeplex.com/workitem/4230 –
Bunu yaptığınız gibi, FWIW, Eşitlik'i geçersiz kılan bir proxy'yi dinamik olarak yayınlayabilmesi için bir işlevsellik için bir işleve sahiptir. ! – jaminto