私はいくつかのことを検証したいテストクラス内にテストメソッドを持っていますが、この特定のテストメソッドでソフトアサートした後にしか失敗しません。SoftAssert in Seleniumテストクラス
しかし、私のテスト方法が不具合処理で乱雑になってきていると感じています。私はこれに関するベストプラクティスを見つけることができませんでした。何か案は?私がアサーションをページオブジェクトクラスに移すと、そこにはちょっと乱雑になります。チェック大会
@Test
public void test() {
// steps here
// then asserts here
SoftAssert soft = new SoftAssert();
String expectedHeaderText = "foo";
Boolean checkHeader=pageObjectClass.isHeaderPresent() //Change the method on POM pageObjectClass such that it returns the true or false
soft.assertTrue(checkHeader,true);
String checkHeaderContent=pageObjectClass.getHeader()//change method on POM pageObjectClass to return a string
soft.assertTrue(checkHeaderContent.contains(expectedHeaderText), String.format("Expected to find '%s'. Page actually shows '%s'", expectedHeaderText, checkHeaderContent));
// more asserts
sa.assertAll();
}
ヘッダーの有無を確認し、ヘッダーのテキストを確認するのはむしろ冗長なようです。最初のアサートを中止し、ヘッダーテキストをチェックするだけで、ヘッダーが存在し、テキストが期待どおりのものであるということを引き続きアサインします。 テストクラスではアサートを維持し、ページオブジェクトクラスではそれが意味をなさないとは限りません。ページオブジェクトクラスは、セレクタとゲッタ/セッタと他のページに関連するロジックを持つだけで、そこでアサーションを実行する必要はありません。 – jaredgilmore