私はモック 1.0.1 ( http://www.voidspace.org.uk/python/mock/ ) を使用してテストでオブジェクトをモックしています。このアプローチを使用して日付をモックできます。
def dateStub():
return timezone.make_aware(datetime(2013, 1, 1, 10, 30), timezone.utc)
@patch('django.utils.timezone.now', dateStub)
def testFoo(self):
...
しかし、今私はクラスをモックしようとしていますが、同じアプローチが期待どおりに機能していません:
class FakeClass(OriginalClass)
def method(self):
pass
@patch('myapp.mymodule.OriginalClass', FakeClass)
def testFoo(self):
...
また、 @path.object を使用してクラスメソッドのみを置き換えてみましたが、うまくいきませんでした...テストでクラスをモックする正しい方法は何ですか? (クラスは、テストしているクラスによって内部的に使用されます)