2017-02-20 15 views
0

私は関数を使って辞書を使い、何かをする関数を持っています。関数はこのようなものです: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」辞書を模擬する方法を見つけることができませんでした、そのためのテストを書きたい、けど。

この機能をテストして辞書を嘲笑する正しい方法は何ですか?

答えて

1

あなたは今、あなたはあなたのテストで偽を注入することができ、依存性注入

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. 
+0

ありがとう、それは非常に良い:) –

関連する問題