2017-07-03 12 views
0

私は単体テストにしたいハンドラからいくつかの層をフラスコWebアプリケーションに持っている状況があります。この関数は、いくつかのパラメータを取り込み、データベースの異なる値を読み込むことに応じてそれらのパラメータを変更します。大体このような:Pythonはテスト用モック値を注入します

def func_to_test(a=1, b=10, c=100): 
    # do some processing 
    if (read_d_from_database() == 10): 
     # override a to something else 
     # do something 
    if (read_X_from_database() == 45): 
     # override b to 45 
     # do something 
    #etc.. 
私は毎回異なる値を返すなどread_d_from_databaseを()をシミュレートできるように、どのように私は、スタンドアロンのように外側からこの機能をテストすることができ

答えて

0

patch() from unittest.mockを確認できます。特定のメソッドの振る舞いをオーバーライドすることができます。

>>> @patch('__main__.SomeClass') 
... def function(normal_argument, mock_class): 
...  print(mock_class is SomeClass) 
... 
>>> function(None) 
True 
関連する問題