Задать вопрос
kolumbou
@kolumbou
python, html, c#

C# выдает неверное ожидаемое число из списка?

Доброго времени суток.

Появилась проблема в коде класса, который использует список.
Мне его необходимо протестировать через 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".
  • Вопрос задан
  • 128 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@dmitryKovalskiy
программист средней руки
Вы сравниваете количество элементов в списке и 3. У вас все элементы под одному экземпляру. Как вы думаете - в чем баг?
P.S. А за именование надо принудительно заставить кодить сидя на табуретке.И с мышкой на шарике без скролла.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы