を構築する方法のロガー出力の部分文字列を主張する私には、例えば、記録された何かを主張する方法の多くの例を発見しましたメッセージが構築された特定の方法からのアサーションこのテストでは、ログに記録される特定のIDだけが対象となります。パイソン - <a href="http://www.michaelpollmeier.com/python-mock-how-to-assert-a-substring-of-logger-output" rel="nofollow noreferrer">http://www.michaelpollmeier.com/python-mock-how-to-assert-a-substring-of-logger-output</a></p> <p>しかし、私は分離する方法がわからないにかかわらず、メッセージが
テストコードmock_logger.warn.assert_called_with(
all_match(
contains_string('user-id'),
contains_string('team-id')
)
)
は両方
量産コード1(ロガーがメッセージを組み立て)のために働く必要があり
:我々は組み立て
logger.warn(
"Order for team %s and user %s could not be processed",
'team-id',
'user-id'
)
と
量産コード2(メッセージと例外を含む):
logger.warn(
"Order for team {} and user {} could not be processed"
.format('team-id', 'user-id'),
ex
)
ですが、私は引数を取り込むか、カスタムログアペンダを設定すると、最終的なメッセージにアサーションを作るのいずれかと思っていますので、これは動作しません。
あなたが複数の引数を取り、文字列自体をフォーマットするためにあなたのwarn
方法をしたい場合、私はIDE