在 python 中从函数的外部作用域模拟资源
Mocking a resource from outerscope of a function in python
我有一个使用字典的函数,由该函数构造而成,并执行某些操作。函数是这样的:
TRANSLATION_TABLE = {#something}
def get_translate(tokens_and_tags):
results = []
for token, tag in tokens_and_tags:
results.append((TRANSLATION_TABLE.get(token, token), tag))
return results
现在我想为它编写测试,但是,我找不到如何正确模拟 "TRANSLATION_TABLE" 字典。
测试这个函数和模拟字典的正确方法是什么?
您想使用依赖注入
def get_translate(tokens_and_tags, translation_table=None)
translation_table = translation_table or TRANSLATION_TABLE
现在你可以在你的测试中注入一个假的。
def test_get_translate(...):
...
expect = ...
actual = get_translate(fake_tokens_and_tags, {...})
assert actual == expect.
我有一个使用字典的函数,由该函数构造而成,并执行某些操作。函数是这样的:
TRANSLATION_TABLE = {#something}
def get_translate(tokens_and_tags):
results = []
for token, tag in tokens_and_tags:
results.append((TRANSLATION_TABLE.get(token, token), tag))
return results
现在我想为它编写测试,但是,我找不到如何正确模拟 "TRANSLATION_TABLE" 字典。
测试这个函数和模拟字典的正确方法是什么?
您想使用依赖注入
def get_translate(tokens_and_tags, translation_table=None)
translation_table = translation_table or TRANSLATION_TABLE
现在你可以在你的测试中注入一个假的。
def test_get_translate(...):
...
expect = ...
actual = get_translate(fake_tokens_and_tags, {...})
assert actual == expect.