次のようなメソッドを持つクラスのテストを作成しようとしています。
import datetime
import pytz
class MyClass:
def get_now(self, timezone):
return datetime.datetime.now(timezone)
def do_many_things(self, tz_string='Europe/London'):
tz = pytz.timezone(tz_string)
localtime_now = self.get_now(tz)
...
return things
私はそれをテストしたいと思います、そしてそうするために、私はdatetime.datetime.now()
呼び出しが予測可能な何かを返すことを確認する必要があります。
テストでMockを使用する例をたくさん読んでいますが、必要なものが見つからず、テストでMockを使用する方法がわかりません。
get_now()
の代わりに、それをモックする方が簡単な場合に備えて、メソッドを分離しましたdatetime.datetime.now()
が、それでも困惑しています。Mockを使用してこのためのUnitTestを作成する方法について何か考えはありますか?(これはすべてDjango、fwiwにあります。この場合、これが違いを生むかどうかはわかりません。)