0

Assertクラスを使用して、ページにテキストが含まれているかどうかを確認します。このコマンドは、テキストが存在しない場合にテストの実行を停止します。使用確認が欲しいのですが。誰かがそのような方法に関するドキュメントをどこで見つけることができるか教えてもらえますか?

私はWebDriver、junitを意味します。たとえば、そのようなコード

String text=("Terms");
 List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'" + text + "')]"));
 Assert.assertEquals("Text not found!", "Terms", list);

ページに「Term」というテキストがない場合、junit testはテストを中断しますが、エラーメッセージを受け取ってテストを続行する必要があります。

4

2 に答える 2

0

期待している結果が失敗した場合でもテストケースの実行を継続したい場合は、完全な実行の最後に結果を確認してください。

あなたはこのようなことをすることができます-

実行中に失敗するすべてのテストケース結果を格納する変数を宣言してから、tearDownメソッドでAssert.fail(String message)を呼び出すことができます。

 StringBuffer errors = new StringBuffer();

 @Test
 public void testSomething(){
    if(!"data".equals(text)){
      addErrors(text +"not equal to data");
    }

    // add any number of if statements to check anything else 
 }

 @After()
 public void tearDown(){
   if(errors.length()!=0){         
     Assert.fail(errors.toString());
   } 
 }

 public String addErrors(String message){
   errors = errors.append(message+"\n");
 }

これで、testSomething()メソッドで、Webページ上の任意の数のWebElementをチェックまたはテストできます。必要なのは、何かが正しいかどうかをチェックする簡単なifステートメントを用意し、正しくない場合はaddErrors()メソッドを呼び出すことだけです。これがお役に立てば幸いです。

于 2012-07-15T05:19:18.963 に答える
0

Assertのさまざまなメソッドによってスローされた AssertionError をキャッチして処理する必要があるように思えます (ドキュメントはこちら)。このようなもの:

try {
  Assert.assertEquals("Text not found!", "Terms", list);
} catch (AssertionError e) {
  System.err.println("Assertion failed: " + e.getMessage());
}
于 2012-07-13T15:17:30.317 に答える