テスト関数で複数のアサーションを使用していますが、(たとえば) 最初のアサーションが失敗すると、残りのアサーションは実行されなくなります。失敗した後にテスト関数を離れない CppUnit でアサーション (CPPUNIT_ASSERT) を作成する方法はありますか? たとえば、アサーションを中断しない。
私はこれを見つけました: http://cppunit.sourceforge.net/cppunit2/doc/しかし、「チェック」はライブラリに実装されていません。
テスト関数で複数のアサーションを使用していますが、(たとえば) 最初のアサーションが失敗すると、残りのアサーションは実行されなくなります。失敗した後にテスト関数を離れない CppUnit でアサーション (CPPUNIT_ASSERT) を作成する方法はありますか? たとえば、アサーションを中断しない。
私はこれを見つけました: http://cppunit.sourceforge.net/cppunit2/doc/しかし、「チェック」はライブラリに実装されていません。
単体テストには 2 つの考え方があります。1 つは、単体テストでは 1 つのことだけをテストする必要があり、2 つのことをテストする場合は 2 つのテストを行う必要があるということです。利点は、上記の問題が完全に解消されることですが、欠点は、追加のテストを作成するのに数秒余分にかかることです。もう 1 つの考え方は、テストで複数のことをテストできるというものです。失敗するテストはめったになく、開発者がそれを認識して修正できるという考え方です。利点は、複雑なセットアップを 1 回だけ行う必要があることです。もちろん、欠点は、最初の失敗でテストを停止し、問題の真の数と正体を隠してしまうことです。
私のアプローチは実用的であることです。複数のアサーションを回避でき、1 つのテストで複数の属性を開発して簡単にテストできる場合は、それを実行してください。ただし、失敗に備えてください。説明した状況で行き詰まった場合は、テストを複数のテストにすばやくリファクタリングし、 1 つのテストに苦労して時間を無駄にしないでください。テストの総数は絶対に重要ではありません。適切なテスト数は、コードを徹底的に評価するために必要な数です。