このトピックに関する他のディスカッション (StackOverflow) を見てきましたが、他の質問は言語固有のようですが、これは言語固有ではなく、プライベート メソッド、クラス、およびモジュールを使用しないことを検討しています。
バグをより簡単に見つけられるように、プライベート メソッド、クラス、およびモジュールをテストしたいと考えています。これを可能にするために、プライベート メソッド、クラス、およびモジュールを使用しないことを検討しています。その理由は 2 つあります。 「魔法」と(2)コードの再利用を改善します。データは保護する必要があり、動作を提供しないため、プライベート変数とプロパティを使用しないことを検討していないことに注意してください。したがって、テスト中にパブリックにする必要はありません。
OneOperations
下手な例として、 2 つのパブリック メソッドaddOne
andsubtractOne
と 2 つのプライベート メソッドadd
andを持つというモジュールを書いているとしsubtract
ます。プライベート メソッドを持つことを許可していない場合は、2 つのプライベート メソッドを別のモジュール ( basicOperations
) に配置し、そこでそれらをパブリックにして、それらのメソッドをOneOperations
モジュール内にインポートします。これから、コードを挿入することなく、両方のモジュールのすべてのメソッドのテスト コードを記述できるようになります。これの利点は、モジュールをインポートすることにより、メソッドadd
とメソッドをsubtract
他のモジュールで使用できるようになったことbasicOperations
です (2 - コードの再利用の改善)。
これは悪い考えだと感じていますが、これを行わないことを正当化するための実際の経験が不足しているため、この質問を StackOverflow に投稿しました。
では、プライベート メソッド、クラス、およびモジュールをどのようにテストしますか? プライベート メソッド、モジュール、およびクラスを作成することは潜在的な解決策ではありませんか?