Simple.Mockingを使用してテストでいくつかのインターフェースをモックしています。Simple.Mockingカスタムオブジェクトを使用したメソッド呼び出しの呼び出し
Expect.Once.MethodCall(()=> foo.Show(Any<MyObj>.Value));
:いくつかの方法は、私はこのように期待して書く場合にのみ合格
Show
が
Attr
を持つオブジェクトが1に等しいと呼び出された場合でも、カスタム
public class MyObj
{
public int Attr { get; set; }
public override bool Equals(object obj)
{
return Equals(obj as MyObj);
}
public override int GetHashCode()
{
return Attr;
}
private bool Equals(MyObj myObj)
{
return Attr == myObj.Attr;
}
}
public interface IFoo
{
void Show(MyObj o);
}
public class ObjUnderTest
{
public ObjUnderTest(IFoo foo)
{
var o = new MyObj{ Attr = 1; };
foo.Show(o);
}
}
[TestClass]
public class TestClasse
{
[TestMethod]
public void TestShow()
{
var foo = Mock.Interface<IFoo>();
var myObj = new MyObj { Attr = 1 };
Expect.Once.MethodCall(() => foo.Show(myObj));
var objectUnderTest = new ObjUnderTest(foo);
AssertExpectations.IsMetFor(foo);
}
}
問題
は、そのテストは常に失敗しているオブジェクトを受け取ります私は何が必要ではないですか。それらは異なるオブジェクトなので失敗するのは分かっていますが、私はMyObj
Equals
とGetHashCode
を上書きしようとしました。 すべてのアイデア?
。現在の例は不完全です。 – Nkosi
@いたずらしました! – fivunlm