1
我有这样的在我的代码的方法:嘲讽方法,而不是在测试
def save(items):
try:
for item in items():
do_something(item)
except Exception:
my_logging.warning("error happened")
def do_something(item):
pass
我想从代码中的另一个位置调用此方法,但是,我想打电话给不同的方法,而不是do_something(item)
:
@transaction.atomic
def do_with_transaction(item)
delete(item)
do_something(item)
它是确定使用模拟与生产代码的副作用?这样我可以模拟do_something()
使用do_with_transaction(item)
。 它在我看来就像一个干净的解决方案。
会这不是一个非常糟糕的做法和设计决定做这样的事情? – AK47
这是我正在试图找出.. – Dejell
这将是。你的代码应该很容易阅读和做这样的事情(especia听起来像你会混淆每一个未来的读者/维护者的代码,但这只是我的2美分 – AK47