ruby-on-rails - 实例变量在黄瓜步骤中不可用
问题描述
嗨,我正在研究 Rails 项目,我必须用 Cucumber 测试 API。我有一些实例变量来存储 URL、令牌等。我的第一个场景工作正常,但我的第二个场景由于实例变量的 nil 值而失败。
功能文件:
Feature: Bill Reminder
Scenario: Validate POST bill_reminder API with valid parameters
When I make POST bill_reminder API call
Then It should return success for bill_reminder
Scenario: Validate GET bill_reminder API with valid login token
when I send a GET request to bill reminder details
Then the json response should have title bill reminder
步骤文件:
When(/^I make POST bill_reminder API call$/) do
@url = 'http://example.com/api/bill_reminders'
@params = {
data: {
type: "bill-reminders",
attributes: {
title: "bill reminder",
all_day: "0",
start_date: "1409175049",
end_date: "1409175049"
}
}
}
@login_token = 'nev4hPOqyVCXGnOXLYPUhQ'
@user_id = 402
end
Then(/^It should return success for bill_reminder$/) do
header 'login_token', @login_token
header 'user-id', @user_id
response = post @url, @params
response_body = JSON response.body
@id = response_body['data']['id']
expect(response.status).to eq(200)
end
When(/^I send a GET request to bill reminder details$/) do
@url = "http://example.com/api/bill_reminders/#{@id}"
@user_id = 402
@login_token = 'nev4hPOqyVCXGnOXLYPUhQ'
end
Then(/^the json response should have title bill reminder$/) do
header 'login_token', @login_token
header 'user-id', @user_id
response = get @url
expect(response.status).to eq(200)
end
这里我的第二个场景“json 响应应该有标题账单提醒”由于实例变量的 nil 值而失败。我不知道为什么在第二种情况下实例变量的值为零。请帮我修复它。
解决方案
在第二步定义中,您错过了方法中的下划线 _ 。
When(/^I send a GET request to bill_reminder details$/) do
@url = "http://example.com/api/bill_reminders/#{@id}"
@user_id = 402
@login_token = 'nev4hPOqyVCXGnOXLYPUhQ'
end
推荐阅读
- java - 我想在片段中使用 OverridependingTransition 但出现错误
- python - 使用 curve_fit() 进行多项式拟合
- c# - 如何获取子属性的 PropertyDescriptor
- java - 引诱报告:引诱如何从不同的测试中保存/获取两个结果
- xamarin - 如何防止父滚动视图从手势捕获子滚动
- javascript - 从数组中同步删除值
- go - 如何从 Go 中的 Thrift Server 获取客户端 IP,thrift 版本 0.10.0?
- node.js - Express with Pug 模板:继承,如何在 Express 中使用不同的路由使 Block 工作?
- android - 如何使用 Espresso 测试记录器为以编程方式创建的视图创建 UI 测试
- c++ - 如何检查 CNG Windows API 返回符合 FIPS 的算法实现