随着Rails 5.1的发布,它们包括了系统测试.这意味着我们也可以在Rails中测试我们的JavaScript.我看到Rails指南解释了以两种方式创建文章的示例测试:通过系统测试和集成测试.
现在问题是:在Rails 5.1之前,我在集成测试中编写了复杂的测试用例.但现在我有两个选项来编写测试用例.我可以写测试用例
test: should create article
Run Code Online (Sandbox Code Playgroud)
在集成测试中,我也可以在系统测试中编写相同的测试用例.
那么我何时应该选择系统测试来编写测试用例以及何时选择集成测试?
testing integration-testing ruby-on-rails acceptance-testing capybara
在升级到rails 5.1之前,我通过集成测试测试我的rails应用程序.70%的rails应用程序通过集成测试自动化.意味着所有应用程序简单和复杂的行为都通过集成测试自动化.偏离轨道的轨道没有提供任何基于java脚本的测试.
随着Rails 5.1的到来,它们包括系统测试,并表示每个应用程序都与java脚本交互,现在您可以测试您的应用程序端到端场景,如真实用户与浏览器交互.所以我的经理要求我将所有集成测试移到系统测试中.好的好!我们可以按照用户体验它的方式测试我们的应用程序,并帮助我们测试JavaScript.
绝对系统测试也可以涵盖几乎所有的集成测试.那么现在集成测试的重要性是什么?
为什么有人在系统测试中编写相同的测试用例时,应该在Rails 5.1中编写集成测试?
提前致谢.
我想为我的rails应用程序编写测试用例.我已经在Rails内置框架Minitest中编写了很多测试用例.现在我想测试我的网络应用程序的javascript功能.我遇到了这两个工具
1:Selenium网络驱动程序
2:Capybara-webkit
我很困惑使用哪一个.我知道这两个工具的优点和缺点很少
- Capybara webkit是无头的,而selenium web-driver打开浏览器.
- 水豚比硒快.
- Capybara无法打开任何其他应用程序,而selenium可以与Facebook和LinkedIn等第三方应用程序进行交互
谁能告诉我这两种测试工具的比较?
我正在将我的rails应用程序从3.2.2升级到5.1.4.我通过使用params直接在map方法上得到错误.错误:
ActionController :: Parameters的未定义方法`map'
在下面的行.
@assignments= params[:assignments].map {|_k, value| Assignment.new(value.merge assignment_params)}
Run Code Online (Sandbox Code Playgroud)
在rails 5.1中做任何替代方案吗?
我已将rails应用程序从3.2.2升级到5.1.4.我将tinymce版本更新为4.7.9.但是在每一页上我都会在控制台上遇到这个错误,并且没有在那里工作. 控制台出错:
Run Code Online (Sandbox Code Playgroud)Uncaught Error: Could not find control by type: button
的Gemfile
gem 'jquery-rails'
Run Code Online (Sandbox Code Playgroud)
的application.js
//= require tinymce-jquery
Run Code Online (Sandbox Code Playgroud)
指令/ _form
<%= tinymce_assets %>
<p>
<%= f.label :mt_inst %><br />
<%= f.text_area :mt_inst, :class => "tinymce", :rows => 40, :cols => 120 %>
</p>
<%= tinymce %>
Run Code Online (Sandbox Code Playgroud) 我的页面应该包含一个看起来像的图像
<img src="some_long_url">
Run Code Online (Sandbox Code Playgroud)
您将如何使用assert_select 进行测试?我想检查是否存在src="some long url "的图像。
我已经尝试过这个:
assert_select "img[src=?]", /amazon.com/
Run Code Online (Sandbox Code Playgroud)
因为除了amazon.com之外,源的 url 是动态的,这就是为什么我希望我的 src 属性包含 amazon.com 并忽略剩余的正则表达式。
这意味着我希望我的 src 包含一些特定的字符串。
但它给出以下错误:
预计至少有 1 个元素匹配“img[src="(?-mix:amazon.com)"]”,发现 0
我正在使用 Rails 4.2 并使用内置的测试框架。
我看到 Minitest 提供了 Mock 和存根。那么为什么有人使用 mocha gem 进行嘲笑和存根呢?Minitest 存根和模拟是否有限制。如果是,那么有人可以解释一下。
我正在进行rails集成测试,有人编写了当时正在通过的测试,但现在他们正在发出警告
这是我正在处理的代码行
assert_select "a[href=/monster_xml_users/#{user_xml.id}][data-method=delete]", I18n.t('revoke_access')
Run Code Online (Sandbox Code Playgroud)
但现在它正在发出警告
无效的CSS选择器,Assertion没有运行
但如果我像这样写它
assert_select "a", I18n.t('revoke_access')
assert_select "a" do
assert_select "[href=?]","/monster_xml_users/#{user_xml.id}"
assert_select "[data-method=?]", "delete"
end
Run Code Online (Sandbox Code Playgroud)
然后它没有发出警告,测试通过,这是正确的.但我无法弄清楚为什么以前的断言现在失败了?在Rails 4.2中是否已更改assert_select语法?
integration-testing ruby-on-rails assertions ruby-on-rails-4
我有以下代码
#include<iostream>
#include<fstream>
using namespace std;
const int MAX_ARRAY = 26;
class canvas{
private:
char painting[MAX_ARRAY][MAX_ARRAY];
char fileName[10];
public:
canvas(){
fileName = "zzz.txt";
}
};
Run Code Online (Sandbox Code Playgroud)
但是fileName = "zzz.txt"给出的语法错误是
Expression must be a modifiable lvalue
Run Code Online (Sandbox Code Playgroud) 我在一个文件中编写了多个测试用例,我想在每个测试中单独运行 rake 任务。当我使用此命令运行测试用例时:
ruby -I test test/integration/my_test_file.rb
Run Code Online (Sandbox Code Playgroud)
然后 rake 任务只运行一次。我的许多测试都失败了。但是如果我用这个命令单独运行所有失败的测试
ruby -I test test/integration/my_test_file.rb -n test_name
Run Code Online (Sandbox Code Playgroud)
然后所有的测试都通过了。
问题是 rake 任务在第一种情况下只运行一次。但是对于单个测试,每个测试用例每次都会运行 Rake 任务。
这是我在测试文件中设置 rake 任务的方法
require "rake"
MyAppName::Application.load_tasks
Run Code Online (Sandbox Code Playgroud)
在每个测试用例中,我都有这个:
Rake::Task['tasks:my_task_name'].invoke
Run Code Online (Sandbox Code Playgroud)
那么我该如何解决我的问题呢?
我们公司使用 phabricator 作为代码审查过程。去年我在 phabricator 上创建了一些代码审查请求。但现在我想删除它们。但是我找不到任何可以删除代码审查请求的按钮。任何帮助,将不胜感激。谢谢
如何仅使用 update_column 命令更新夹具的列以供临时使用。现在我有以下运行良好的命令:
name = names(:one)
role = roles(:one)
name.role_id = role.id
assert name.save
Run Code Online (Sandbox Code Playgroud)
它运行良好,但是有没有什么有效的方法可以在一行中做到这一点,例如 name.update_column(---, ----) ?
minitest ×3
testing ×2
assertions ×1
c++ ×1
capybara ×1
class ×1
constructor ×1
fixtures ×1
mocking ×1
phabricator ×1
stub ×1
tinymce ×1
tinymce-4 ×1