モック内のメソッドが期待されるオブジェクトパラメータで呼び出されていることを確認しようとしています。私はMoq、nUnitを使用していて、AutoFixtureのLikenessが仕事を成し遂げるべきだと考えています。以下は私がやろうとしていることの簡略版です。
AutoFixtureでこれを行う方法はありますか?Something
適切なパラメータで呼び出されたことを確認するためのより良い方法はありますか?
クラス内のEqualsをオーバーライドしA
てプロパティ値を比較し、Verify
行を次のように変更します。
barMock.Verify(m => m.Something(a));
パスしますが、プロジェクトのAのようなすべてのクラスでEqualsをオーバーライドしたくありません。
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
}
}
}