[PYTHON] Ich möchte einen Mox-Generator

Das Schreiben von Tests ist heutzutage so mühsam geworden, dass ich mich fragte, ob Mox es leicht erstechen könnte.

Zuallererst die Klasse.

mox_generator.py


import mox
class MoxGenerator(object):

    def __init__(self):
        self.mox = mox.Mox()

Ich fange immer noch an darüber nachzudenken, also habe ich vorerst eine geschrieben. Alles ist in Ordnung, Stub, der True zurückgibt. Ohne die Argumente zu berücksichtigen. Das ist schrecklich (Schweiß).

python


    def true_stub(self, stub_class, stub_method, num_args):
        self.mox.StubOutWithMock(stub_class, stub_method)
        stubbed = getattr(stub_class, stub_method)
        args = tuple([mox.IgnoreArg() for i in range(num_args)])
        stubbed(*args).AndReturn(True)

Beim Anrufen sieht es so aus. Hier sollte MyClass.hoge (x, x, x) True zurückgeben. Die letzte Zahl ist die Anzahl der Argumente, die an MyClass.hoge übergeben werden sollen.

python


    moxgen= MoxGenerator()
    moxgen.true_stub(MyClass, 'hoge', 3)

Natürlich ist die Wiedergabe auch problematisch, daher ist der Name seltsam, aber legen Sie ihn in den Generator!

python


    import contextlib
    @contextlib.contextmanager
    def mox_replay(self):
        self.mox.ReplayAll()
        yield
        self.mox.VerifyAll()

Testausführungsseite.

example_test.py


    with moxgen.mox_replay():
        MyClass.method_which_should_call_hoge()

Ich habe es auch auf github hochgeladen. https://github.com/norobust/mox_generator Warum wird es nicht mit meinem richtigen Namen begangen? Wie änderst du es in einen Benutzernamen?

Recommended Posts

Ich möchte einen Mox-Generator
Ich möchte einen Mox-Generator (2)
Ich möchte einen Python-Generator viele Male iterieren
Ich möchte in der Einschlussnotation drucken
Ich möchte eine Python-Umgebung erstellen
Ich habe einen Hanko-Generator mit GAN gemacht
Ich möchte einfach ein Rauschmodell erstellen
Ich möchte einen DataFrame in MSSQL einfügen
Ich möchte mit Python ein Fenster erstellen
Ich möchte ein Spiel mit Python machen
Ich möchte keinen Codierungstest machen
Ich möchte eine Art von Implementierung erstellen, die angeschlossen werden kann
Ich möchte leicht einen leckeren Laden finden
Ich möchte mit Python in eine Datei schreiben
Ich möchte eine Django-App auf Heroku hochladen
〇✕ Ich habe ein Spiel gemacht
Ich habe einen sqlite3.OperationalError
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte, dass DQN Puniki einen Homerun macht
100 Klopfen bei der Bildverarbeitung !! (021-030) Ich möchte eine Pause machen ...
Ich möchte einem Pandas-Datenrahmen eine group_id geben
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Ich möchte mit einem Knopf am Kolben übergehen
Ich möchte mit verstärkendem Lernen einen Berg besteigen
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich möchte ein beliebtes Paket auf PyPi finden
Ich möchte eine Datei mit Python zufällig testen
Ich möchte einfach eine modellbasierte Entwicklungsumgebung erstellen
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte eine Zeichenkette mit Hiragana teilen
Ich möchte ein Paket von Php Redis installieren
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Ich möchte manuell eine Legende mit matplotlib erstellen
Ich möchte automatisch eine Unternehmensgründungs-E-Mail senden
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte eine lokale Variable mit Lambda binden
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten
[Python] Ich möchte einen gemeinsamen Satz zwischen numpy erhalten
Ich möchte viele Prozesse von Python aus starten
Ich möchte ein Klickmakro mit pyautogui (Wunsch) erstellen.
Ich möchte automatisch einen modernen Metal-Bandnamen generieren
Ich möchte SUDOKU lösen
Ich möchte ein Klickmakro mit pyautogui (Outlook) erstellen.
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
Ich möchte das Paket aus den Anforderungen.txt mit Poesie installieren
Ich möchte eine Nachricht von Python an LINE Bot senden
Ich habe einen Python-Text gemacht
Ich habe einen Zwietrachtbot gemacht
[Visualisierung] Ich möchte mit Plotly ein schönes Diagramm zeichnen
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Ich habe einen neuronalen Netzwerkgenerator erstellt, der auf FPGA läuft
Ich möchte vorerst eine Docker-Datei erstellen.
Ich möchte die Ausführungszeit aufzeichnen und ein Protokoll führen.
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
MacBookPro-Setup Schließlich möchte ich eine Neuinstallation durchführen
Qiskit: Ich möchte eine Schaltung erstellen, die beliebige Zustände erzeugt! !!