如何模拟 Python 列表中的局部变量?
How to mock if a local variable in a list in Python?
我正在尝试模拟列表中的 if 食物,有人可以告诉我该怎么做吗?谢谢!
def method_a():
food = "apple"
if food in ["apple", "banana"]
do something...
问题中的代码自第一次迭代以来已被修改。
它现在的样子 - 你 不能 模拟 food
因为它是函数的局部变量(正如@chepner 在评论中建议的那样!)。
您可以做的一件事是将 food
从调用者传递到函数中:
def method_a(food):
if food in ["apple", "banana"]
# do something...
通过这样做 - 您的测试可以轻松地“注入”您想要测试的值。
一般来说,建议使用 dependency injection (DI) 方法,有时也称为 IoC(控制反转),以使您的代码更清晰且可测试。
我正在尝试模拟列表中的 if 食物,有人可以告诉我该怎么做吗?谢谢!
def method_a():
food = "apple"
if food in ["apple", "banana"]
do something...
问题中的代码自第一次迭代以来已被修改。
它现在的样子 - 你 不能 模拟 food
因为它是函数的局部变量(正如@chepner 在评论中建议的那样!)。
您可以做的一件事是将 food
从调用者传递到函数中:
def method_a(food):
if food in ["apple", "banana"]
# do something...
通过这样做 - 您的测试可以轻松地“注入”您想要测试的值。
一般来说,建议使用 dependency injection (DI) 方法,有时也称为 IoC(控制反转),以使您的代码更清晰且可测试。