我想使用模拟库来替换结果datetime.now()
来测试一些逻辑。所以我现在正在使用mocker
它并且效果很好,但是我遇到了一些问题,也许是错误,所以我想继续更新一些东西。谷歌建议使用fudge
所以......我不能让它嘲笑datetime.now()
from one import ClassName
def test_fudge():
import fudge
@fudge.patch('datetime.datetime.now')
def a(dtn):
dtn.expects_call().returns(1)
print 'fudge:', 'yep' if ClassName().one() == 1 else 'nope'
a()
test_fudge()
one.py 文件:
from datetime import datetime, timedelta
class ClassName(object):
def one(self):
return datetime.now()
结果:fudge: nope
有任何想法吗?
嘲笑者的例子:
import mocker
from one import ClassName
m = mocker.Mocker()
n = m.replace('datetime.datetime')
n.now()
m.result(123)
with m:
print ClassName().one()
one.py是一样的。结果:123