kolumbou
@kolumbou
python, html, c#

Как в C# NUnit протестировать список?

Никогда особо не разбирался в этой теме, но тут понадобилось протестировать список в классе.

Есть несколько вариантов самих тестов, но они не используют класс как таковой, а тестируют прямо в себе.
Вот например:

[Test]
        public void test()
        {
            var expected = new List<int> { 1, 2, 3 };
            var actual = new List<int> { 1, 2, 3 };

            CollectionAssert.AreEqual(expected, actual);  //1
            Assert.AreEqual(expected, actual);           //2
            Assert.That(actual, Is.EqualTo(expected));  //3
        }


Как же подвязать этот тест к списку в классе, например такому:

public class listtest
{
    private List<string> tlist = new List<string>();
    //write
    public void Write(string s)
    {
        tlist.Add(s);
    }
    //index elements
    public string ReadElement(int i)
    {
        return tlist.ElementAt(i);
    }
}


Сюда пришел уже в отчаянии - перечитал несколько тем на stackoverflow (а их там по данной тематике всего три-четыре) и других порталах по спискам, но везде всегда что-то совсем не то, что мне нужно.
  • Вопрос задан
  • 502 просмотра
Решения вопроса 1
Ваш класс listtest инкапсулирует в себе List, вы никак не сможете к нему получить полный доступ не предоставив его в классе.
Имена методов странные, Write лучше заменить на Add.
Смысл не понятен, у вас адаптер или прокси получается. Определите точную задачу класса, возможно уже есть готовые реализации.
По тесту, сделайте метод который вернет копию внутреннего списка, пускай копии и сравниваются.

Почитайте Правила использования массивов, Выбор между свойствами и методами.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы