У меня есть код, подобный этому:
public List<string> Expected = new List<string>();
public int SpecifiedID;
public DataIn(int ID, string Value)
{
Expected.Add(Value);
//if (ID == SpecifiedID)
//Expected.Clear();
//Need to add this but my tests that do something like
//CollectionAssert.AreEqual(new[] { "2", "4", "6", "8" }, logic.Expected);
//all fail as Expected is empty.
}
//Example Test
[Test]
public void NewTestFunction()
{
MyClass logic = new MyClass();
logic.SpecifiedID = 4;
logic.DataIn(1,"2");
logic.DataIn(2,"4");
logic.DataIn(3,"6");
logic.DataIn(4,"8");
//This will FAIL if Expected.Clear is added in the class.
CollectionAssert.AreEqual(new[] { "2", "4", "6", "8" }, logic.Expected);
}
Это значительно упрощается, однако у меня есть тесты, которые проверяют правильность содержимого Expected
при вызове DataIn
. Однако теперь я понял, что должен очищать Expected
после каждого DataIn
вызова. Это сломало мои тесты, очевидно, так как нечего утверждать.
Любые предложения о том, как сохранить тесты, которые проверяют содержимое, но также позволяют мне очистить коллекцию?