从黄瓜功能生成的步骤发送获取请求

时间:2015-08-28 07:56:25

标签: java json cucumber cucumber-jvm cucumber-junit

我是cucumber的新手。我已为cucumber配置了所需的罐子环境。我想用cucumber测试rest api。首先创建.feature文件并生成基本步骤定义。

.feature档案:

Feature: Test

  Scenario: List accounts
    Given the system knows about the following details:
      | name | value |
      | unit | 01    |
      | dept | 001   |
    When the client requests accounts
    Then the response code should be 200
    And the response should contain following details:
      | name    | value   |
      | unit    | 01      |
      | dept    | 001     |
      | acctype | current |

TestClass.java如下:

package testPackage;

import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.DataTable;
import cucumber.api.PendingException;
import cucumber.api.java.en.*;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(
        features={"classpath:cucumber.features/"},
        glue = {"testPackage"}      
        )

public class TestClass {

    @Given("^the system knows about the following details:$")
    public void the_system_knows_about_the_following_details(DataTable arg1) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        // For automatic transformation, change DataTable to one of
        // List<YourType>, List<List<E>>, List<Map<K,V>> or Map<K,V>.
        // E,K,V must be a scalar (String, Integer, Date, enum etc)
        throw new PendingException();
    }

    @When("^the client requests accounts$")
    public void the_client_requests_accounts() throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^the response code should be (\\d+)$")
    public void the_response_code_should_be(int arg1) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^the response should contain following details:$")
    public void the_response_should_contain_following_details(DataTable arg1) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        // For automatic transformation, change DataTable to one of
        // List<YourType>, List<List<E>>, List<Map<K,V>> or Map<K,V>.
        // E,K,V must be a scalar (String, Integer, Date, enum etc)
        throw new PendingException();
    }

}

我搜索了很多但无法找到GET来自.java文件的请求。

如何从GET步骤定义发送cucumber个请求并比较json响应?

1 个答案:

答案 0 :(得分:0)

如果您愿意使用Spring,可以使用Spring's REST Template以RESTful方式发送HTTP请求。

Jackson也很好地解析了对预定义的java数据对象的响应/请求,这使得处理JSON的痛苦明显减少。