Je voudrais savoir s'il existe un moyen de comparer deux objets dans MBUnit afin que le test soit passé lorsque les objets "semblent" identiques, même s'il s'agit d'instances distinctes?MbUnit: Comparaison d'instances d'objets distincts
Par exemple:
[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() ne fonctionne pas pour ce (test échoue, voir ci-dessus le code source). Puisqu'il remarque que "Les deux valeurs se ressemblent quand elles sont formatées mais qu'elles sont des instances distinctes", je pense qu'il doit y avoir un moyen de le faire dans MbUnit sans sérialiser les objets dans XML dans mon propre code.
Dois-je écrire ma propre méthode d'extension Assert pour cela?
Mais ce ne serait pas générique. Je devrais le faire pour chaque nouvelle classe que je suis en train de tester. –
Mais apparemment, vous classes utilise l'égalité des valeurs et non l'égalité de référence. Pour capturer ce fait, vous devriez vraiment envisager de remplacer 'Equals'. Cela pourrait non seulement profiter à vos tests mais aussi à votre code d'application. –
Dans mon application actuelle, je n'ai pas besoin de comparer deux instances de ce type d'objet. Si je devais remplacer Equals, ce serait uniquement pour les tests unitaires. J'aime garder au minimum les codes généraux pour les tests unitaires. –