In meinem Python-Paket Mocking habe ich ein Konfigurationsmodul, das eine YAML-Datei liest an einer expliziten Stelle (bei der Erstellung der Instanz), also so etwas wieeine Datei in Python
class YamlConfig(object):
def __init__(self):
filename = os.path.join(os.path.expanduser('~'), '.hanzo\\config.yml')
with open(filename) as fs:
self.cfg = yaml.load(fs.read())
Nun, was soll ich tun, wenn das Schreiben mein Unit-Test, wenn ich die explizit angegebene Datei nicht verwenden möchte? Stattdessen möchte ich ein temporäres config.yml
erstellen, das für das Testen verwendet wird.
Ich könnte einfach für einen angegebenen Dateinamen in __init__()
zulassen, aber ich bevorzuge stark den Dateinamen Speicherort. I.e. wie dieser
class YamlConfig(object):
def __init__(self, filename=os.path.join(os.path.expanduser('~'), '.hanzo\\config.yml')):
with open(filename) as fs:
self.cfg = yaml.load(fs.read())
Gibt es andere Möglichkeiten, um mein Problem zu lösen? Ich denke, es könnte möglich sein, mit mock
richtigen Weg? Fühlen Sie auch frei, irgendwelche Anmerkungen über Oberseite und Unterseite zu geben.
Müssen Sie einige spezifische Inhalte in dieser Datei oder Sie gerade zu erzeugen Brauchen Sie eine virtuelle temporäre Datei? – lapinkoira
Ja, einige YAML-Inhalte, die ich in meinem Komponententest angegeben habe –