Форум сайта python.su
0
Есть класс последовательности с методами вставки элемента и поиска
class Sequence(object): def __init__(self): self.first = None self.len = 0 def add(self,new): self.len += 1 if self.first is None: self.first = element(new) else: self.first = element(new, self.first) def find(self, index): i = self.first num = 0 while num is not index: i = i.nex num += 1 print i.value
class element(object): def __init__(self, value = None, nex = None): self.value = value self.nex = nex
from list import Sequence as s import unittest class testsequence (unittest.TestCase): def setUp(self): self.lst = s() def testadd(self): self.lst.add(1) self.lst.add(2) self.lst.add(3) self.lst.add(4) self.lst.printall() def testfind(self): index = input ("Введите индекс") self.lst.find(index) if __name__ == "__main__": unittest.main()
Офлайн
857
.setUp() выполняется заново перед каждым тестом
в тестах не должно быть человеческого участия
то есть человек не должен ничего вводить и ничего читать
http://www.diveintopython3.net/unit-testing.html
http://www.diveintopython3.net/refactoring.html
Офлайн
0
Даже когда я без ввода в тесте передаю в функцию какое-нибудь значение, ошибка та же.
Офлайн
857
прочитай ещё раз насчёт .setUp()
ошибка в том, что он создаёт пустой объект перед каждым тестом
поэтому, если даже у тебя .testadd() выполнился первым (что не обязательно, он может и последним выполниться), то перед .testfind() то, что там было добавлено, стирается
Офлайн