Je suis nouveau en C#, donc cela pourrait être une vraie question de vidage: j'ai implémenté IComparable dans ma classe et je veux le tester avec NUnit. Mais la méthode CompareTo est marquée comme privée et n'est donc pas accessible à partir du test.
Quelle est la raison pour cela et comment puis-je résoudre ce problème?
Le IComparable:C#: implémentation d'IComparable private
public class PersonHistoryItem : DateEntity,IComparable
{
...
int IComparable.CompareTo(object obj)
{
PersonHistoryItem phi = (PersonHistoryItem)obj;
return this.StartDate.CompareTo(phi.StartDate);
}
}
Le test:
[TestMethod] public void TestPersonHistoryItem() { DateTime startDate = new DateTime(2001, 2, 2); DateTime endDate = new DateTime(2010, 2, 2); PersonHistoryItem phi1 = new PersonHistoryItem(startDate,endDate);
PersonHistoryItem phi2 = new PersonHistoryItem(startDate, endDate); Assert.IsTrue(phi1.CompareTo(phi2)==0); }
Merci mais je ne peux pas déclarer mes variables comme IComparable. Donc, selon votre réponse, l'autre option serait de les implanter implicitement, je suppose. Comment ferais-je cela? –
Vous pouvez également les transtyper dans votre déclaration assert: 'Assert.IsTrue (((IComparable) phi1) .CompareTo ((IComparable) phi2))' –