私は、内部関数のいくつかのテストを必要とするクラスを持っています。内部関数を公開する設計パターン(外部テストのため)
これらのテストは、システム検証のみを目的とする外部エンティティでのみ使用する必要があるため、クラスの一部として埋め込むことは望ましくありません。
私の解決方法は、内部関数protected
を宣言し、外部使用のためにそれらを公開するクラスを追加するという形です。ここで
は非常に単純な(擬似コード)の例である:
class public MyClass {
protected int add(int val1, int val2) {
return val1 + val2;
}
protected int mul(int val1, int val2) {
return val1 * val2;
}
}
class MyClassExposurer : public MyClass {
public int addTest(int val1, int val2) {
return super.add(val1, val2);
}
public int mulTest(int val1, int val2) {
return super.mul(val1, val2);
}
}
は、このデザインパターンのための既知の専門用語はありますか?
ありがとうございます。
プライベートメソッドまたは保護されたメソッドのテストには何の意味もありません。パブリックメソッドをテストするときに自動的にテストされるためです。 –
@RickSanchez:もし問題があれば、問題点を特定したいからです。この問題は、外部関数を実行すると「隠れている」可能性があります。 – goodvibration
リフレクションを使用できます。 –