kam über die folgenden MS Einheit Test:Was ist der Unterschied zwischen diesen beiden Unit Test Assertions?
[TestMethod]
public void PersonRepository_AddressCountForSinglePerson_IsNotEqualToZero()
{
// Arrange.
Person person;
// Act.
person = personRepository.FindSingle(1);
// Assert.
Assert.AreNotEqual<int>(person.Addresses.Count, 0);
}
ich nie den Einsatz von Generika gesehen haben, wenn Assertions zu tun.
Dies ist, wie ich die Assertion schreiben würde:
// Assert.
Assert.AreNotEqual(person.Addresses.Count, 0);
Was ist der Unterschied?
Wenn ich über die AreNotEqual()
Überladung, die ich verwende, schwebe, verwendet die Methode die Überladung, die zwei Doppelgänger vergleicht (nicht sicher, warum es kein int gibt, int überladen).
Und wenn ich tun setzen Sie den generischen type-Parameter von <int>
in, ReSharper sagt, es ist redundant.
Also meine Frage ist: Wenn die Art, wie ich es mache, immer noch typsicher ist, warum generische Behauptungen verwenden?
Das erklärt es wirklich gut, danke. Im Allgemeinen müssen wir den generischen Typparameter für die meisten Werttyp-Assertions nicht verwenden. Ich vermute jetzt, wenn der Compiler sich über eine mehrdeutige Behauptung beschwert, werde ich den Typparameter verwenden. Vielen Dank. – RPM1984