これはJavaにとって不可能な作業かもしれませんが、プロのいずれかが解決策を持っているかどうかは疑問です。 [Javaを使い始めてから数年経ちましたが、実際には大学のほうが]Javaでは、2つのクラスをマージして、両方のクラスのメソッドを1つから呼び出せるようにすることは可能ですか?
私はQAのフレームワークを構築しています。何か問題がある場合は、質問をしたり、旗を掲げてください。
Selenium Webdriverを使用すると、ドライバクラスがあります。
public class Driver {
private final String browser;
private final WebDriver driver;
public Driver(String browser) {
driver = new RemoteWebDriver(new URL(Environment_address));
}
それはテスト各テストケースを実行しているクラス、および追加的な方法でライブラリが使用する必要があるので、私が最初にこのクラスを言及。 (ヘルパーメソッド)
ようなこれらの例で
class UserPageUtils{
private final Webdriver driver;
public UserPageUtils(driver){
this.driver = driver;
}
public void makeUsersLifeMiserable(){...}
}
と
class ActionPageUtils{
private final Webdriver driver;
public ActionPageUtils(driver){
this.driver = driver
}
public void doSomethingCoolWithAction(){...}
}
として、単一のクラスまたは変数へのクラスにマージする方法はありますか?私が考えていないデザインパターン。私には次のことがあります。どのようにして、次のことができるようにするか、同様の効果をもたらすようにクラスを調整できますか?
public TestSuite extends AverageEverydayTestSuiteLikeTestNG{
@BeforeMethod
public void setUp(Object[] objects) {
HelperUtils utils = merge('ActionPageUtils','UserPageUtils', driver);
// Similarly in psuedo
// HelperUtils utils = merge(new ActionPageUtils(driver), new UserPageUtils(driver));
}
@Test
public void testUserAction(HelperUtil utils){
utils.makeUsersLifeMiserable(); //util has methods from both classes!!
utils.doSomethingCoolWithAction();
assert something is still passing.
}
このようなことをjavaで行うことはできますか? 1つのクラスに2つのラッパーを作成します。私は構造化の周りに私の頭を包むことはできません。私はこれがbashや何かでもっと可能なように感じますが、もしJavaがそのようなことをすることができるかどうかは分かりません。
これはどのように実装できますか?
[ジャワ、セレン、Groovyの]
Junit TestSuiteについて教えてください。http://www.tutorialspoint.com/junit/junit_suite_test.htm –
ページオブジェクトを試しているようですね。抽象クラスとして基本クラスを定義し、他のページオブジェクトクラスを拡張します。 [this](https://www.seleniumeasy.com/selenium-tutorials/simple-page-object-model-framework-example)の例を参照してください。おそらく助けになります – Rao
ああ、悪いアプローチではありませんが、似たようなものです。私は1つの大きなスイートを作るために複数のテストケースを一緒にマージしようとしていません。私はしかし、1つの大きなクラスに複数のライブラリクラスをグループ化しようとしています。 目標:テストケースは、テストの実行に役立つ複数のライブラリに依存します。 @ScaryWombat – Baconbitz