Я пытаюсь тестировать NUnit, добавляя элемент в коллекцию из нового потока. Это тестовая функция, которую я использую:
[Test]
public void WorkerThreadAccess()
{
string foo = "Foo";
Collection<string> collection = new Collection<string>();
System.Threading.Thread thread =
new System.Threading.Thread(() => collection.Add(foo));
thread.Start();
Collection<string> expected = new Collection<string> { foo };
System.Threading.Thread.Sleep(0);
CollectionAssert.AreEqual(expected, collection);
}
Когда я запускаю тест один раз, он проходит. Однако в каждом последующем тесте без закрытия графического интерфейса NUnit NUnit не выполняет Assert со странной ошибкой:
Ожидаемый и фактический значения: <System.Collections.ObjectModel.Collection
1 [System.String] `> с 1 элементом
Значения отличаются по индексу [0]
Длина строк равна 3. Строки различаются по индексу -1.
Ожидаемый: "Foo"
Но было: "Фу"
Кто-нибудь может дать некоторое представление о том, что происходит не так? Элементы выглядят одинаково для меня, и индекс -1 должен возвращаться только при ошибке IndexOf()
.
РЕДАКТИРОВАТЬ: я использую NUnit 2.5.7