#python #python-3.x #unit-testing
#питон #python-3.x #модульное тестирование
Вопрос:
У меня есть эта функция:
def text_to_html(text): """ Convert text into HTML Args: text (): text to convert Returns: HTML string """ html = "lt;pgt;" text.replace("n", "lt;brgt;") "lt;/pgt;" return html
Я пытаюсь создать модульный тест для этой функции, как это.
class TestDebtModules(unittest.TestCase): def test_html(self): string = """ THIS IS A TEST STRING """ string_input = text_to_html(string) string_output = r'lt;pgt;lt;brgt;THIS lt;brgt;IS A TEST lt;brgt;STRINGlt;brgt;lt;/pgt;' self.assertEqual(string_input, string_output)
Однако. это выдает ошибку утверждения, потому что добавляет дополнительные символы в мою строку. Это известная ошибка или я делаю что-то не так? (Надеюсь, последнее). Если это первое, есть ли для этого какой-либо обходной путь?
Expected :lt;pgt;lt;brgt; THISlt;brgt; IS A TESTlt;brgt; STRINGlt;brgt; lt;/pgt; Actual :lt;pgt;lt;brgt;THIS lt;brgt;IS A TEST lt;brgt;STRINGlt;brgt;lt;/pgt;
Ответ №1:
Ваша строка состоит из """
многострочной строки, которая включает пробелы и новые строки.
Чтобы удалить эти пробелы, рассмотрите возможность использования строки с неявными новыми строками, как показано ниже:
string = "THISnIS A TESTnSTRINGn"
или
string = ("THISn" "IS A TESTn" "STRINGn")
Если вы все еще хотите использовать его таким же образом, вы можете удалить пробелы, как показано ниже:
string = """ THIS IS A TEST STRING """ string = string.replace(" ", "")
Однако это также приведет к удалению пробелов между словами
Комментарии:
1. Спасибо. Но если я выполню это в обычном сценарии печати(repr(строка)), никаких странных символов не будет показано. Есть ли какой-нибудь способ их визуализировать?