Espresso + Cucumber - 是否可以通过一次测试处理几个步骤

Espresso + Cucumber - is it possible to handle few steps with one test

我无法在我的测试之上写一个以上的注释。

对于场景:

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. 如果您使用黄瓜,则不需要 @Test 注释
  2. 可以在一个方法上放置多个注释

就像你的例子:

    @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 次。

所以,是的,你可以。但最好不要(而且我看不出你需要它的任何理由)。此外,如果您不更改小黄瓜,测试可能会失败。