Доброго времени суток.
Появилась проблема в коде класса, который использует список.
Мне его необходимо протестировать через nunit. Ниже приведены код класса и тест к нему.
Проблема описана в самом низу.
Код класса:
public class MyClass01
{
public MyClass01(string _name, int _kol)
{
name = _name;
kol = _kol;
}
public string name;
public int kol;
}
public class cAAA
{
List<MyClass01> my = new List<MyClass01>();
public cAAA()
{
my.Add(new MyClass01("one", 1));
my.Add(new MyClass01("two", 2));
my.Add(new MyClass01("three", 3));
}
public List<MyClass01> Read(string _name)
{
List<MyClass01> x = new List<MyClass01>();
foreach (var item in my)
{
if (item.name == _name)
{
x.Add(item);
}
}
return x;
}
}
Код теста:
[Test()]
public void Test1()
{
var instance = new ArrayUtils.cAAA();
List<ArrayUtils.MyClass01> actualList = instance.Read("three");
// проверить, что элемент 3
Assert.AreEqual(3, actualList.Count);
int actual = actualList.Single().kol; // извлечь элемент
}
В чем соль: в итоге, при задании, допустим "two" or "three" - всегда в тест
выдает единицу.
Получается, что тест верен только при условии "one".