次の例では、ネストされた関数f1()を単体テストしますか?Python:ネストされた関数を単体テストする方法を教えてください。
def f():
def f1():
return 1
return 2
また、テストを必要とする関数はネストされていないはずですか?
次の例では、ネストされた関数f1()を単体テストしますか?Python:ネストされた関数を単体テストする方法を教えてください。
def f():
def f1():
return 1
return 2
また、テストを必要とする関数はネストされていないはずですか?
this linkにも同様の質問があります。しかし、短い答え:あなたは外側の要素から内部関数にアクセスすることはできません。
テスト目的のために、プライベート外側の内部関数を変更する方法がありますか?
あなたはできません。
単位テストを外部関数に制限するか、内部関数を別の場所に移動する必要があります。
私は同じ疑念を持ち、内部機能のテストを行う方法を見つけました。
def outer():
def inner():
pass
if __debug__:
test_inner(inner)
# return
def test_inner(f):
f() # this calls the inner function
outer()
基本的には、内部関数をパラメータとして外部に送信し、必要に応じてテストすることができます。 outer()を呼び出すと、テストが実行され、クロージャなので、外部関数(変数など)から余分なプロパティが保持されます。リストを使って、あなたが望む数の関数を送ることができます。
python -O code.py
これは非常に特別な場合のソリューションです。外側関数のローカル変数にアクセスするループ内の入れ子関数を考えてみましょう(入れ子関数のより一般的な使用例、IMHO)。 – Alfe
@alemangui:感謝場合を無視するには、オプションでは、そのようなコードを実行することです!それは私の質問に答えます。 – e1i45
私は答えとしてそれを入れます: – alemangui