Ich habe eine Klassenzuweisung, die ich versuche, das umgebende Framework zu verstehen.Testfälle innerhalb von Python-Klassen
Ich habe ein StringCalculator-Klassenmodul erstellt und dann eine Testdatei erstellt.
Innerhalb der Testdatei, die erstellt wird, um gegen mein Klassenmodul zu laufen, habe ich zahlreiche "Methoden". Werden diese "Methoden" im Allgemeinen als Testfall gelten oder sollte ich mehr wie Doctest machen?
Bitte verzeihen Sie mir, weil ich neu in der Programmierung bin und es mir schwer fällt, das Framework und Testfälle zu verstehen. Also bitte nicht in die Warteschleife oder irgendetwas mit diesem Beitrag. Ich bin bereit, alle Fragen zu beantworten, die Sie mir in den Weg legen. Wieder bin ich ein Neuling. Ich muss nur wissen, ob das, was ich im Code skizziere, als Testfälle betrachtet werden.
Der Code unten ist, was ich für meine Testdatei haben:
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()
dies hinzuzufügen, wenn ich die Test-Datei ausführen: testen, um 10:50 Uhr ... begann Traceback (jüngste Aufforderung zuletzt): Datei „C: \ Program Files (x86) \ JetBrains \ PyCharm Community Edition 2016.2.2 \ helpers \ pycharm \ utrunner.py ", Zeile 172, in module = loadSource (a [0]) Datei "C: \ Programme (x86) \ JetBrains \ PyCharm Community Edition 2016.2.2 \ helpers \ pycharm \ utrunner.py", Zeile 65, in loadSource module = imp.load_source (Modulname, Dateiname) IOError: [Errno 2] Keine solche Datei oder Verzeichnis Prozess beendet mit Exit Code 1 –