Natknąłem następującym MS jednostka testowa:Jaka jest różnica między tymi dwiema asercjami testu jednostkowego?
[TestMethod]
public void PersonRepository_AddressCountForSinglePerson_IsNotEqualToZero()
{
// Arrange.
Person person;
// Act.
person = personRepository.FindSingle(1);
// Assert.
Assert.AreNotEqual<int>(person.Addresses.Count, 0);
}
Nigdy nie widziałem stosowanie leków generycznych, gdy robi twierdzeń.
ten sposób chciałbym napisać twierdzenie:
// Assert.
Assert.AreNotEqual(person.Addresses.Count, 0);
Jaka jest różnica?
Po najechaniu kursorem na przeciążenie AreNotEqual()
używam, metoda wykorzystuje przeciążenie, które porównuje dwa podwójne (nie wiem, dlaczego nie ma przeciążenia int, int).
A jeśli I do umieścić ogólny parametr typu <int>
w, ReSharper mówi, że jest zbędny.
Moje pytanie brzmi: jeśli sposób, w jaki to robię, jest nadal bezpieczny dla typu, dlaczego używa się generycznych twierdzeń?
To wyjaśnia bardzo dobrze, dzięki. Zasadniczo nie musimy używać ogólnego parametru typu dla większości asercji typu wartości. Chyba teraz, jeśli kompilator narzeka na niejednoznaczne twierdzenie, będę używał parametru type. Dzięki. – RPM1984