2017-07-19 1 views
0

Im Code Ich bin mit dem Python-Methode time():Stub Python Zeitverfahren mit Mockito (wenn)

from time import time 

# Some code 
t=time() 
# Some more code 

main.py

In meinen Tests, ich möchte, dass die Stub Zeitverfahren mit Mockito, zurückzukehren immer den gleichen Wert:

import time 
#... 
when(time).time().thenReturn(2) 
#... 

test.py

jedoch, dass nicht, wenn ich nicht ändern funktioniert, wie ich die Zeit Methode in Haupt nennen:

import time 
t=time.time() 

main_2.py

Ich mag den Haupt-Code vermeiden, ändern oder verstehe zumindest, warum diese Änderung notwendig ist, damit der Stub funktioniert.

Antwort

1

Sie verspotten das falsche Modul. Ihr Code verwendet den Namen time in seinem eigenen Namespace, nicht den Namen in der time-Modul, obwohl beide auf die gleiche Funktion beziehen.

Wenn test.py importiert main.py mit import main, dann verwenden

when(main).time().thenReturn(2)