MBUnit의 두 개체를 비교하여 개체가 "룩업"될 때 테스트가 전달되도록하는 방법이 있는지 알고 싶습니다. 예를 들어MbUnit : 고유 한 개체 인스턴스 비교
:
[TestFixture]
class ComparisonTestFixture
{
class foo
{
public string bar;
}
[Test]
public void ComparisonTest()
{
foo foo1 = new foo()
{
bar = "baz"
};
foo foo2 = new foo()
{
bar = "baz"
};
//This assertion should be successful, but it isn't
//*** Failures ***
//Expected values to be equal.
//Expected Value & Actual Value : {foo: bar = "zzz...."}
//Remark : Both values look the same when formatted but they are distinct instances.
Assert.AreEqual(foo1,foo2);
}
}
Assert.AreEqual() (, 테스트가 실패 위의 소스 코드를 참조)이 작동하지 않습니다. "두 값 모두 형식이 같지만 별개의 인스턴스입니다."라고 말한 이후로 내 자신의 코드에서 XML로 객체를 직렬화하지 않고 MbUnit에 내장 된 방법이 있어야합니다.
내 자신의 Assert 확장 메서드를 작성해야합니까?
를 호출하지만 그건 일반적인되지 않을 것 같은 실제로 올바른 결과를보고합니다. 내가 테스트 할 때마다이 작업을 수행해야합니다. –
하지만 분명히 클래스는 가치 평등을 사용하고 참조 평등을 사용하지 않습니다. 이 사실을 포착하려면 '평등'을 무시하는 것이 좋습니다. 이는 테스트뿐만 아니라 애플리케이션 코드에도 도움이 될 수 있습니다. –
실제 응용 프로그램에서는이 개체 유형의 두 인스턴스를 비교할 필요가 없습니다. 만약 내가 Equals를 오버라이드한다면, 그것은 유닛 테스트에만 해당 될 것입니다. 단위 테스트를위한 오버 헤드 코드를 최소한으로 유지하는 것이 좋습니다. –