Hallo zusammen,
ich teste gerade eine Klasse auf Thread Sicherheit. Dazu habe ich eine Menge Threads, die Daten an die Klasse übergeben, welche innerhald der Klasse durch Enqueue einer Auflistung hinzugefügt werden.
Die Daten in der Queue werden in einem Thread innerhalb der Klasse in ein Dictionary platziert. - Desweiteren habe ich ein paar Threads die von außerhalb Daten aus der Klasse abrufen.
So viel ersteinmal zum Aufbau.
Im Thread, wo ich Daten abrufe, behaupte ich es sind Daten vorhanden. - Jedoch wird mir dort mindestens einmal eine Assertion Exception geworfen.
Diese mutet mir jedoch seltsam an:
Expected: true
but was: true
Wie ist das Verhalten zu erklären? Ich mein, es ist ja gewiss kein Fehlerfall wenn ich mit meiner Behauptung recht habe, was mir NUnit ja gar noch bestätigt.
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |
Hallo inflames2k,
setzte mal einen Brakepoint.
Welche Assertionmethode verwendest du? Nicht zufällig Assert.IsSame?
Das folgende lustige kleine snippet gibt aus:
"True does not equal True"
byte[] bytes=new byte[2]{1,2};
bool[] bools=new bool[bytes.Length];
Buffer.BlockCopy(bytes,0,bools,0,bools.Length);
if(bools[0]!=bools[1])
Console.WriteLine(bools[0]+" does not equal " + bools[1]);
Vielleicht ist das je eine erklärung.
Nein 😉
Ich nutze "Assert.That(collectionx.Count > 0);"
also vorzustellen so:
private void ThreadMethod()
{
List<Foo> foos = new List<Foo>();
foos.AddRange(MyExpectedThreadSaveObject.GetFoos());
Assert.That(foos.Count > 0);
}
Wie gesagt erhalte ich hier zum Teil die Meldung "Expected: true but was: true". - Ist es richtiger Weise ein Fehler, erhalte ich auch false.
Die Collection hat beim Assert auch laut Debugger mehr als 0 Einträge. 🤔 Daher finde ich die ganze angelegenheit ja merkwürdig.
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |
Hallo,
welche Version von NUnit verwendest du? In letzter Zeit gab das einige Bugfixes (aktuell 2.5.7). Vielleicht tritt bei dir ein Bug in NUnit auf - ist ja nicht ausgeschlossen 😉
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Daran könnte es durchaus liegen. Werd mal das Update machen und dann weiter sehen.
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |
Hallo,
nur als Hinweis für das Update: Die aktualisierten Assemblies von nunit.framework.dll liegen in einem andern Verzeichnis - auf dieses aufpassen beim Einbinden des Verweises.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"