我正在创建一个用户,然后查询。但是当我在查询中传递id时,我得到了这个错误。这是没有发生的。
my class
class Crud
include HTTParty
base_uri 'http://dummy.restapiexample.com/api/v1'
def create
nome = Faker::UniqueGenerator.clear
nome = Faker::Name.unique.first_name
salario = Faker::Number.number(digits: 2)
idade = Faker::Number.number(digits: 2)
$body = {name: nome, salary: salario, age: idade }.to_json
$headers = {
'Accept' => 'application/vnd.tasksmanager.v2',
'Content-Type' => 'application/json'
}
self.class.post('/create', body: $body, headers: $headers)
end
def retrieve(id)
self.class.get("/employee/#{ id }")
$response = @manter_user.create
expect(@manter_user.create.code).to eq (200)
puts $response.body
@id = JSON.parse($response)['id']
1条答案
按热度按时间kokeuurv1#
靶区; DR
由于没有提供HTML、CSS、JavaScript和模型/控制器的源代码,所以很难猜出真正的问题是什么,但是,您已经提供了足够的信息,表明您正在进行这组测试,并且最好重构测试,或者修改登录实现或用户界面,使其更具可测试性。
验证内容和验证位置
这不是一个真正的Cucumber大纲问题。这个问题很可能与您的测试步骤或底层UI问题有关。如果验证是在服务器端进行的,那么您很可能没有使用唯一的CSS ID或其他与您的Flash消息相关的一致且易于查找的信息。或者,如果您在JavaScript中执行验证并操作DOM插入错误消息,那么您没有正确地驱动Web页面。
此外,UI本身并不是测试有效或无效登录以外的任何东西的理想场所。如果您想知道 * 为什么 * 登录是无效的,出于安全原因,如果你想知道为什么一个给定的登录失败,你通常想在模型或控制器测试中做更细粒度的测试。2你不应该返回像"不正确的密码"或"无效的用户名"这样的信息(与"无效登录"相对),它会泄漏有关给定帐户是否存在的信息。
此外,email * validation * 通常是在浪费时间,虽然有一些非常复杂的正则表达式可以使用,比如Perl regex for RFC 822 addresses,但是email地址从来没有被设计成符合正则表达式的模式,而且,大多数人对email validation的实现都很糟糕。并且幼稚的验证通常不会接受完全有效的电子邮件地址,例如加号地址或qmail样式的破折号扩展名。即使输入一个与RFC822、RFC5822或您试图验证的任何RFC匹配的"有效"电子邮件地址,也无法实际验证它是否是一封"可交付"电子邮件。
鉴于上述情况,在允许点击登录按钮之前,你最好验证这两个字段是否都为非空。这似乎是你想要做的主要检查。否则,只需检查页面是否有flash提供的不变的"无效登录"文本,或者在文本输入或验证登录时用于操作DOM的任何东西。