Ich lerne VS Unit Test und versuchte dies:
[TestMethod()]
public void calcTest()
{
double expected = 1.234F; // TODO: Initialize to an appropriate value
double actual;
actual = 1.234F;
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Verify the correctness of this test method.");
}
Wenn ich diese Testmethode ausführe, heißt es "nicht schlüssig". Warum?
Aktualisieren: Man kann sagen, dass man Floats nicht vergleichen sollte, aber die geschäftlichen Anforderungen sind, was sie sind. Was sollte ich also tun, wenn ich sie vergleichen muss?
Meinen Sie, dass es unmöglich ist, eine fließende Berechnung ohne Kopfschmerzen zu testen? Wenn das Testen von Finanzberechnungen so viel Kopfzerbrechen bereitet, ist es dann nicht besser, überhaupt nicht zu testen?
Scheint wie ein großer Fehler oder Design-Fehler in vs Test-Framework eher :) wie es hier gesagt wird http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.assert.inconclusive%28VS.80%29.aspx
Zeigt an, dass eine Behauptung weder als wahr noch als falsch bewiesen werden kann.
Da ich 2 gleiche Wurfsendungen vergleiche, ist es sicher wahr.
1 Stimmen
Die Microsoft-Unit-Test-Suite enthält jetzt auch überladene Methoden zum Testen von Gleitkommazahlen (und Doubles) durch Übergabe einer Delta-Toleranz, die angibt, wie gleich die Werte sein müssen, um zu bestehen ( msdn.microsoft.com/de-us/library/ms243456.aspx ). Wird so verwendet:
Assert.AreEqual(float expected, float actual, float delta, string failingTestMessage)