У меня есть назначение класса, которое я пытаюсь понять, окружающая среда.Тестовые случаи в классах Python
Я создал модуль класса StringCalculator, а затем создал тестовый файл.
Внутри тестового файла, который создан для работы с моим модулем класса, у меня есть множество «методов». В целом, будут ли эти «методы» считаться тестовыми примерами, или я должен делать больше как доктрину?
Пожалуйста, простите меня, потому что я новичок в программировании, и мне просто трудно понять, что это за рамки и тестовые примеры. Поэтому, пожалуйста, не откладывайте на этом посту. Я готов ответить на любые вопросы, которые вы бросаете мне. Опять же, я новичок. Мне просто нужно знать, рассматриваются ли то, что я описываю в коде, тестовые примеры.
Ниже код, что у меня есть для моего тестового файла: подсчитывать
import unittest
from StringCalculatorClass2 import StringCalculator
class TestStringCalculatorClass(unittest.TestCase):
def test_add_empty_string(self):
string_calculator = StringCalculator()
result = string_calculator.add("")
assert 0 == result
def test_add_one(self):
string_calculator = StringCalculator()
result = string_calculator.add("1")
assert 1 == result
def test_add_two(self):
string_calculator = StringCalculator()
result = string_calculator.add("2")
assert 2 == result
def test_add_one_and_two(self):
string_calculator = StringCalculator()
result = string_calculator.add("1,2")
assert 3 == result
def test_add_five_numbers(self):
string_calculator = StringCalculator()
result = string_calculator.add("1,2,17,4,1,1")
assert 26 == result
def test_add_with_new_line(self):
string_calculator = StringCalculator()
result = string_calculator.add("1,2\n17")
assert 20 == result
def test_is_new_delimiter_set(self):
string_calculator = StringCalculator()
result1 = string_calculator._is_new_delimiter_set("//;\n1;2;17\n5")
result2 = string_calculator._is_new_delimiter_set("1;2;17\n5")
assert True == result1
assert False == result2
def test_get_new_delimiter(self):
string_calculator = StringCalculator()
result = string_calculator._get_new_delimiter("//;\n1;2;17\n5")
assert ';' == result
def test_get_string_without_delimiter(self):
string_calculator = StringCalculator()
result = string_calculator._get_string_without_delimiter("//;\n1,2")
assert "1,2" == result
def test_call_add_with_new_delimiter(self):
string_calculator = StringCalculator()
result = string_calculator.add("//;\n1;2;17\n5")
assert 25 == result
def test_create_error_message_for_negative_numbers(self):
string_calculator = StringCalculator()
negative_numbers = [-1, -2, -3]
result = string_calculator._create_error_message(negative_numbers)
assert 'negatives not allowed: -1, -2, -3' == result
def test_negative_numbers_raises_exception(self):
string_calculator = StringCalculator()
exception_raised = False
try:
result = string_calculator.add("-1")
except Exception:
exception_raised = True
assert True == exception_raised
def test_negative_number_raises_exception_with_message(self):
string_calculator = StringCalculator()
exception_raised = False
exception_message = ""
try:
result = string_calculator.add("-1")
except Exception as err:
exception_message = err
exception_raised = True
assert True == exception_raised
assert 'negatives not allowed: -1' == exception_message.args[0]
def test_multiple_negative_numbers(self):
string_calculator = StringCalculator()
exception_raised = False
exception_message = ""
try:
result = string_calculator.add("2,-1,4,-2")
except Exception as err:
exception_message = err
exception_raised = True
assert True == exception_raised
assert 'negatives not allowed: -1, -2' == exception_message.args[0]
if __name__ == '__main__':
unittest.main()
Чтобы добавить это, когда я запускаю тестовый файл я получаю это в PyCharm: Тестирование началось в 10:50 вечера ... Traceback (самый последний вызов последнего): файл «C: \ Program Files (x86) \ JetBrains \ PyCharm Community Edition 2016.2.2 \ helpers \ pycharm \ utrunner.py ", строка 172, в module = loadSource (a [0]) Файл «C: \ Program Files (x86) \ JetBrains \ PyCharm Community Edition 2016.2.2 \ helpers \ pycharm \ utrunner.py", строка 65, в loadSource module = imp.load_source (moduleName, fileName) IOError: [Errno 2] Нет такого файла или каталога Процесс завершен с кодом выхода 1 –