3
@lolcat_decorator1
@loldog_decorator2
@lolrat_decorator3
def lolanimal(*args, **kwargs):
  ....

これらのデコレータを個別に単体テストすると確信しています。しかし、これらのデコレーターは、lolanimal最初に渡されたパラメーターに対してlolanimal処理を行い、次に変更されたパラメーターに対して処理を行います (これらのデコレーターの 1 つは、新しいキーワード引数を に挿入する場合があり**kwargsます)。

それで、それを嘲笑する最良の方法は何ですか?

ありがとう

4

2 に答える 2

4

私が最初に考えたのは_lolanimal、 のすべての実際の機能をカプセル化するメソッドを作成し、ラッパーを介してパスをlolanimal作成することです。その後、完全に制御できるデータに対してすべてのテストを実行できます。lolanimal_lolanimal_lolanimal

また、構成値を読み取る最初のデコレーターの前に来る2番目のデコレーターを作成することもできます。または、構成値がtrueの場合にデコレーターをオーバーライドする何らかのテストモード用にlolspecific...

于 2012-04-24T17:05:21.770 に答える
0

私の最初の考えは、デコレータを関数の実装の一部と見なし、「関数」を単体テストする必要があるということでした。うまくいけば、それらのデコレータに依存関係を注入する必要はありません-もしそうなら、Silas Rayの答え考慮する必要があるでしょう。

于 2013-08-06T07:42:29.780 に答える