Ich habe eine Test-Datei wie folgt schreiben:Wo können Bibliotheken in Komponententests importiert werden? Python
import unittest
from mylibrary import some_crazy_func
class TestSomething(unittest.TestCase):
def test_some_crazy_func_that_needs_io_open(self):
# Opens file
# Calls function
# assert outputs
Aber ich bin nicht sicher, wo die „pythonic Lage“, wo ich die Bibliothek importieren soll (sie io
sagen).
Sollte es an der Spitze sein:
import io
import unittest
from mylibrary import some_crazy_func
class TestSomething(unittest.TestCase):
def test_some_crazy_func_that_needs_io_open(self):
expected = ['abc', 'def', 'xyz']
with io.open('somestaticfile.txt', 'r') as fin:
outputs = [some_crazy_func(line) for line in fin]
assert outputs == expected
oder innerhalb der TestCase
‚s Funktion:
import unittest
from mylibrary import some_crazy_func
class TestSomething(unittest.TestCase):
def test_some_crazy_func_that_needs_io_open(self):
import io
expected = ['abc', 'def', 'xyz']
with io.open('somestaticfile.txt', 'r') as fin:
outputs = [some_crazy_func(line) for line in fin]
assert outputs == expected
Oder ist es vor der Testcase-Funktion und im Objekt Initialisierung:
import unittest
from mylibrary import some_crazy_func
class TestSomething(unittest.TestCase):
import io
def test_some_crazy_func_that_needs_io_open(self):
expected = ['abc', 'def', 'xyz']
with io.open('somestaticfile.txt', 'r') as fin:
outputs = [some_crazy_func(line) for line in fin]
assert outputs == expected
Ich kann nicht sagen, das ist der beste Weg, aber ich fragte eine ähnliche Frage vor Jahren und das, wie ich ging für den Unit-Test importieren http://stackoverflow.com/questions/34689852/is-this- a-proper-way-to-test-stdout-mit-python-3-unittest – tsumnia
Das heißt, wenn der Import von einem bestimmten Testfall abhängig ist, könnte importlib die Route sein, die Sie nehmen möchten – tsumnia