Espresso + Cucumber - 只需一次测试即可完成几个步骤

时间:2016-07-28 16:16:55

标签: android cucumber gherkin

我无法在测试之上编写多个注释。

对于场景:

Feature: Login Tests
  @example
  Scenario: Login
    Given I am on the Login Screen
    When  I login with "haha@hihi.com" and "qq123456

我有两个工作测试:

    @Test
    @Given("^I am on the Login Screen$")
    public void i_am_on_the_Login_Screen() throws InterruptedException {
        mLoginPage.waitForPageVisible();
    }

    @Test
    @When("^I login with \"([^\"]*)\" and \"([^\"]*)\"$")
    public void i_login_with_and(String user, String password) throws InterruptedException {
        mLoginPage.typeUser(user);
        Espresso.closeSoftKeyboard();
        mLoginPage.typePassword(password);
        Espresso.closeSoftKeyboard();
        mLoginPage.tapLoginBtn();
    }

我想要做的就是合并它:

@Test
@Given("^I am on the Login Screen$")
@When("^I login with \"([^\"]*)\" and \"([^\"]*)\"$")
public void i_login_with_and1(String user, String password) throws InterruptedException {
    mLoginPage.waitForPageVisible();

    mLoginPage.typeUser(user);
    Espresso.closeSoftKeyboard();
    mLoginPage.typePassword(password);
    Espresso.closeSoftKeyboard();
    mLoginPage.tapLoginBtn();
}

但我无法在单次测试之上放置一些注释。有可能吗?

1 个答案:

答案 0 :(得分:0)

  1. 如果您使用黄瓜,则不需要@Test注释
  2. 可以在方法上添加许多注释
  3. 就像你的例子一样:

        @Given("^I am on the Login Screen$")
        @When("^I login with \"([^\"]*)\" and \"([^\"]*)\"$")
        public void i_login_with_and1(String user, String password) throws InterruptedException {
    ....
    
    1. 如果你保持小黄瓜情景相同,方法i_login_with_and1将被调用2次。
    2. 所以,是的,你可以。但最好不要(而且我没有看到你需要它的任何理由)。此外,如果你不改变小黄瓜,测试可能会失败。