アプリケーションがあり、単体テストや機能テストを想像したくないと想像してください。あなたは抽象クラスを持っているかもしれません、それをAbstractTestClassと呼ぶことにしましょう。そこからすべてのユニットテストが拡張されます。 AbstractTestClassは、この(JUnitの4を使用)のようなものになりますテストと継承の問題
:ここ
class AbstractTestClass {
boolean setupDone = false;
@Before
public void before() {
if(!setupDone) {
// insert data in db
setupDone = true;
}
}
}
は私が苦労してるものです。それはそれはWebTestCaseを拡張することを除いて、ほとんど同じクラスだ
class AbstractWebTestClass extends WebTestCase {
boolean setupDone = false;
@Before
public void before() {
if(!setupDone) {
// here, make a call to AbstractTestClass.before()
// init the interfaces
setupDone = true;
}
// do some more thing
}
}
:私は、Webインタフェースをテストする別の抽象クラスを抱えています。この設計により、インターフェイスのテスト時よりも単体テスト時に同じデータを得ることができます。
通常、このような問題に対処するには、継承よりも構成を優先するか、戦略パターンを使用する必要があります。
残念ながら、私はこの特定のシナリオで継承を超えた構成に賛成する考えがあまりなく、戦略パターンをどのように使用できるか分かりません。おそらく設計上の欠陥があり、ソリューション。
私の目標を達成するために、このアーキテクチャをどのように設計できますか?
webtestcaseがabstracttestcaseを拡張していますか?あなたは問題が何であるかを明確に述べることができますか、理解していないIm ... – hvgotcodes
はい。これは望ましいことですが、あなたはJavaで複数の継承を行うことができないので、私はこれでこだわっています:) – ALOToverflow
...あ、私は今参照してください。 – hvgotcodes