我开始使用水豚来测试我的rails应用程序,但现在我遇到了一个问题。
有时,水豚只在一个字段中填充两个字段的内容,从而产生错误。这以一种随机的方式发生,我不知道如何防止它。
例如,下面的图像应该在第一个字段中有"New capybara party“,在第二个字段中有"Lorem ipsum dolor sit amet”,但正如你所看到的,那里充满了坏。
我将rspec与水豚和硒一起使用。代码如下:
context 'User is logged in' do
it 'creates a party' do
click_li
我安装了cabybara和牛排gem来创建验收测试。在安装水豚之后,请求示例被配置为使用水豚。水豚的例子有不同的语法,无法识别响应。
如何将请求示例重置为作为RSpec示例运行?
测试错误:
4) Users signup failure should not make a new user
Failure/Error: click_button
wrong number of arguments (0 for 1)
# ./spec/requests/users_spec.rb:13
# ./spec/requests/users_spec.r
我正在使用水豚进行集成测试,它看起来像是传递给我的控制器的会话出了问题,这是我测试的“登录”部分。通过浏览器登录时,登录效果良好,但在水豚中登录失败。
def integration_sign_in(user)
visit signin_path
puts "Pre email: " + user.email
puts "Pre password: " + user.password
# When I use these, everything works co
你能帮我解决这个问题吗?
在下面的功能测试中,水豚找不到“文章标题”和“文章主体”的字段:
feature "Creating Articles" do
scenario "A user creates a new article" do
visit '/'
click_link("New Article")
fill_in "article[title]", with: "title"
fill_in "article[body]",
在我的控制器中,重定向是使用以下代码完成的:
会话控制器
def create
render js: "window.location.pathname = #{home_path.to_json}"
end
但是当我运行水豚时,在login提交发生后,它不会到达home_page:
describe "Login Test", :js => true do
before do
@user = FactoryGirl.create(:user)
end
it 'should show the users first name
我有一个带有onchange事件的表单域,它将一些文本插入到页面中。
fill_in "password", :with => 'test' # should trigger onchange which inserts the text below into the page
page.should have_content('very insecure')
现在,当我用cucumber/ capybara/ selenium和firefox进行测试时,它可以正常工作,没有任何问题。使用selenium和铬,水豚抱怨在文档中找不到文本。
水豚的行为真的很奇怪。
它根本找不到任何输入字段,ID,name或label。所以我改变了测试,只检查渲染了什么,得到了一个巨大的sass错误。
feature "new users are not admin" do
scenario "user signs up" do
visit new_user_registration_path
#fill_in "Username", :with => "newuser"
#fill_in "Email", with: &
我在水豚中经常遇到请求测试失败的问题,因为水豚没有等待ajax事件完成后才继续进行。
Google似乎表明我应该在测试中使用:重新同步选项来修复这个问题。但它不起作用。
要证明这是一个问题,可以通过在ajax调用后放置睡眠语句来修复失败的测试。这似乎是任何不好的做法,因为适当的延迟将根据运行测试的机器的速度而变化。选择一个合适的大值会严重减慢运行包含大量ajax操作的测试套件的速度。
下面是一个失败/通过测试的示例。单击保存前的休眠决定了page.should have_content(‘自定义项目’)的通过/失败:
it "should be able create a new to
我正在使用RSpec,Spork,Capybara和Capybara Mechanic为使用Facebook connect的注册路径编写集成测试。它可以正确地导航到注册,但新用户是在我的开发数据库中创建的,而不是在测试数据库中创建的。
RSpec被设置为使用测试环境,我已经确认我在规范中运行的所有模型方法都命中了测试数据库,但所有的UI操作都命中了开发。
这是我的测试:
it "go through registration path" do
print "RAILS_ENV: #{Rails.env}\n" # correctly prints '
典型的设计创建帐户页面应该重定向到欢迎新用户的页面。
describe ArtistsController do
render_views
....
describe "Sign UP should redirect to welcome page" do
it "should redirect to welcome page on valid sign up", :js => true do
visit destroy_artist_session_path #just to be sure we're logged
我正在使用minitest与工厂女孩和水豚进行集成测试。当我不使用factory girl来创建用户对象时,水豚工作得很好,如下所示:
it "logs in a user successfully" do
visit signup_path
fill_in "Email", :with => "joey@ramones.com"
fill_in "Password", :with => "rockawaybeach"
fill_in "Password conf
我有给定的测试代码:
describe 'A new user', js: true do
before do
@new_user = Fabricate.build(:user)
end
it 'should sign up' do
#login code
visit '/'
click_link 'Login'
fill_in 'user[email]', :with => @new_user.email
fill_in 'user[p
我试着做一个简单的测试,即水豚进入页面,填充一个基于景物的字段,并验证页面中是否有文本(我知道这是一个无用的测试,但它只是一个POC),但是黄瓜找不到我的步骤来获取示例数据并寻找静态步骤。这是文件
.feature:
Given que eu estou na página
When eu escrever no campo o nome <name>
Then deve ver receber a mensagem "Back"
scenary:
| name |
| wolo |
| xala |
步骤:
When /^eu escrever no campo
我正在测试一个网站,在右边有一个垂直的登录表单,在底部有一个水平的表单。两者都有相同的名称“电子邮件”和“密码”字段。所以我雇用了capybara的within来搜索我感兴趣的领域。web表单中有趣的部分如下所示:
我有两个独立的项目,其中我正在试验沙司实验室的自动化。第一个项目是纯水原的例子,修改后可以测试上面显示的页面。第二个项目是黄瓜实现完全相同的测试。这些都是非常简单的,一次硬编码的测试,只是为了证明这两种技术的概念。
这里是海原的有趣部分,仅举一个例子:
within(:css, ".right-container.login-form") do
f
接收到以下错误,用于我在终端机中的Capybara测试:
Failures:
1) Users User create new user
Failure/Error: fill_in 'Username', with: 'Ali', visible: false
Capybara::ElementNotFound:
Unable to find field "Username" that is not disabled within #<Capybara::Node::Element tag=
我在通过ajax加载结果的页面上有一个元素。我想用capybara/rspec (使用poltergeist驱动程序)来测试这一点,但由于Select2元素实际上是作为隐藏字段开始的,然后在结果处理后填充<ul>,所以常规的select、fill_in或choose助手都不会工作。
我现在拥有的东西是这样的
it "should have a search field for events" do
click_link "Select an Event" # this works as expected
within(
我正在尝试用水豚做一个简单的登录示例测试,您可以使用用户电子邮件和密码进行登录,它将重定向到root_url并显示“已登录”的通知。
由于某种原因,水豚报告在我使用click_on登录后,我在login_path "/login“,但当我运行它时,我在root_path "/”并带着我的通知。
无论是水豚还是我的测试应用程序,我都错过了什么?所有相关的代码应该在下面。
控制器/sessions_CONTRONTER.rb
def create
user = User.find_by_email(params[:email])
if user &&am
我的规格:
let(:user) { FactoryGirl.create(:user) }
context 'When user is logged in' do
scenario 'Log in' do
visit login_path
within '.new_user_session' do
fill_in 'username', with: user.email
fill_in 'password', with: user.passwo
我的问题是,我必须创建一个新的用户,并为每个单独的水豚测试登录。
下面是一个例子:
require 'spec_helper'
describe "users" do
describe "user registration" do
it "should create a new user and log in" do
# Register a new user to be used during the testing process
visit signup_path
fill_
我正在测试在一个大型消费网站上创建一个使用黄瓜和水豚的账户。当我在一个常规的查询会话中运行我的capybara代码时,这一切都是有效的。但是当我运行黄瓜测试时,within块似乎没有运行,注册表单也没有填写。
env.rb
require 'capybara/cucumber'
require 'selenium-webdriver'
Before do
Capybara.default_driver = :selenium
end
test.feature
Scenario: Test consumer site account creation
* I
我在给水豚附文件有问题。
我有一个客户模型
class Client
mount_uploader :logo, ClientUploader
validates :name, :logo, presence: true
end
在我看来,表单被分割成选项卡,徽标在媒体选项卡上,它由javascript切换,所以我使用poltergeist javascript驱动程序。
it "should allow a client to be created", js: true do
click_link "New Client"
fill_in
ruby '~> 2.6.1' rails 5.2.3 我有一个功能规范,它需要执行一些javascript来填充日期选择器的alt字段。 规格: require 'rails_helper'
Capybara.default_driver = :selenium
Capybara.javascript_driver = :selenium
RSpec.feature "Guest user creates a new order", js: true do
scenario "order is valid" do
我有一个rails应用程序,我正在使用水豚进行测试。我目前正在测试创建系统的表单。我可以让填充方法为文本字段工作,但我不能让它对数字字段工作
这就是我尝试过的:描述“管理系统”所做的工作。
it "adds a new system and displays the results"do
visit '/systems/new'
fill_in 'name', with: "test system"
fill_in 'responsible_personnel&