如何仅在另一个方法成功时运行特定方法?

时间:2013-07-02 09:49:21

标签: java webdriver testng

我能够完全运行这个:

public void daliytest() {

        me.login();

        czz.createzoo();


        czz.addanimals();


        me.logout();

    }

现在我想要这样的事情:

public void daliytest() {

        me.login();

        czz.createzoo();

        if (czz.createzoo.isSuccess){
        czz.addanimals();
            }

        me.logout();

    }

如果我问一个与java有关的基本问题,请原谅我(初学者) 感谢

5 个答案:

答案 0 :(得分:0)

如果您使用普通代码,那么您可以检查第一种方法的返回值,并决定是否要调用第二种方法

如果您使用Junit,则可以根据您输入的断言结果调用其他方法。类似

// in first method
if (assertTrue(condition)) {

//call second method

}

答案 1 :(得分:0)

使czz.createzoo()返回布尔值,如果成功则返回true,然后执行if:

public void daliytest() {

    me.login();

    boolean success = czz.createzoo();

    if (success){
        czz.addanimals();
    }

    me.logout();

}

答案 2 :(得分:0)

要么在createzoo()中返回一个布尔值来表示成功,要么在出现问题时抛出Exception

如果您选择使用布尔值:

if(czz.createzoo()) {
    czz.addanimals();
}

以下是成功时返回布尔值的方法示例:

public boolean createzoo() {
    if(name != null) {
        this.zoo = new Zoo(name);
        return true; // Success
    } else {
        return false; // Failure
    }
}

如果您选择使用例外:

try {
    czz.createzoo();
    czz.addanimals();
} catch(IllegalArgumentException e) {
    e.printStackTrace();
}

由于createzoo()可能抛出异常,因此必须使用try / catch块来处理异常。如果createzoo()抛出异常,代码将跳转到catch块,addanimals()将不会被执行。

以下是在出现问题时抛出异常的方法示例:

public void createzoo() {
    if(name != null) {
        this.zoo = new Zoo(name);
    } else {
        throw new IllegalArgumentException("No name has been set for the zoo");
    }
}

答案 3 :(得分:0)

czz.createzoo();中返回true或false,并在if条件

中使用它
if(czz.createzoo()){
//Success.
}
else{
//Failure
}

答案 4 :(得分:0)

让你的createZoo方法返回true成功创建了zoo,否则为false。然后你可以写下面的

public void daliytest() {

    me.login();


    if (czz.createzoo()){
    czz.addanimals();
        }

    me.logout();

}