-1

私のJUnitテストからこのメソッドを呼び出したいのですが、それを呼び出すことができますが、エラーが発生するはずですが、失敗するのではなくテストに合格します。

public void handleErrors(String string, boolean b) {
    System.out.println(string + ", " + b);
    if(b == false){
        collector.addError(new Throwable(string + ", " + b));
    }   
}

これを渡すと、テストで失敗するはずですが、失敗しません。

@Test
public void test() throws InterruptedException {
    handleErrors("Button was found", false);
}

JUint が失敗を報告しないのはなぜですか?

編集:

package com.selenium.tests;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.openqa.selenium.By;
import org.junit.rules.ErrorCollector;
import com.selenium.AbstractScreenTest;
public class test1 extends AbstractScreenTest{

@Rule
public ErrorCollector collector= new ErrorCollector();

@Before
public void initialize() {
createTest();
}

@Test
public void test() throws InterruptedException {
handleErrors("Button was found", false);
}

public void handleErrors(String string, boolean b) {
System.out.println(string + ", " + b);
if(b == false){
collector.addError(new Throwable(string + ", " + b));
}   
}

@After
public void tearDown(){
closeTest();
}

}
4

2 に答える 2

0

これを修正しました。動かさなかった

@Rule public ErrorCollector collector= new ErrorCollector();

ライン。

于 2013-01-18T19:22:42.247 に答える
0

@Rule でコレクターに注釈を付けていないと思います。そして、それは ErrorCollector である必要があります。API doc の例があります。

public static class UsesErrorCollectorTwice {
    @Rule
    public ErrorCollector collector= new ErrorCollector();

    @Test
    public void example() {
            collector.addError(new Throwable("first thing went wrong"));
            collector.addError(new Throwable("second thing went wrong"));
            collector.checkThat(getResult(), not(containsString("ERROR!")));
            // all lines will run, and then a combined failure logged at the end.
    }
}

お役に立てれば

于 2013-01-18T19:05:16.693 に答える