#python #unit-testing #console #sequences
#python #модульное тестирование #консоль #последовательности
Вопрос:
def parse(self, input):
input = input.replace("n", "").replace(" ", "")
bits = input.split("=>")
return bits[:-1]
Учитывая "a => nb => nc=> "
вывод в консоли ["a", "b", "c"]
, это именно то, что я хочу. Я предполагаю, что консоль должна форматировать выходные данные, но я не могу объяснить, почему мои тесты терпят неудачу.
Мой модульный тест завершается неудачей, указывая, что результат достигается [["a", "b", "c"]]
при выполнении assertEqual
с использованием unittest.
Кто-нибудь может объяснить? Я довольно новичок в Python в том смысле, что я не прикасался к нему несколько лет, и даже тогда это был довольно ограниченный опыт.
Тестовый код
subject = InputParser()
self.assertEqual(subject.parse("a =>nb => "), ["a", "b"])
Приветствия
Комментарии:
1. Может быть, вы тоже можете показать код из своего unittest?
2. Пожалуйста, опубликуйте фактический код модульного теста?
3. Да, я добавил тестовый код, который я тоже использовал.
4. Круглые скобки вызова assert несбалансированы, т. Е. Есть Два закрывающих, но только один открытый.
Ответ №1:
Я только что протестировал это с помощью модуля ниже, и мой тест прошел просто отлично:
import unittest
class InputParser:
def parse(self, input):
input = input.replace("n", "").replace(" ", "")
bits = input.split("=>")
return bits[:-1]
class InputParserTest ( unittest.TestCase ):
def test_parse ( self ):
subject = InputParser()
self.assertEqual(subject.parse("a =>nb => "), ["a", "b"])
if __name__ == '__main__':
unittest.main()
Комментарии:
1. Я чувствую себя полным идиотом. Код действительно работал. Неудачные тесты были названы аналогично некоторым другим тестам выше по цепочке. В свою очередь, результат синтаксического анализатора использовался в новой последовательности. Doh. Я принял это как ответ, поскольку вы были достаточно любезны, чтобы запустить код, который доказал, что было что-то еще, чего я не видел. Приветствия.
2. Ха-ха, иногда мы даже не видим самых очевидных ошибок 😉 Рад, что вы смогли решить эту проблему!