![](/img/trans.png)
[英]How to test disabled field in ruby on rails and assert_select?
[英]assert_select in IntegrationTest Ruby on Rails
我来自Python和Java背景,仅具有CSS,HTML,Ruby的基础知识,并且尝试使用Ruby on Rails学习Web开发。 我正在尝试遵循Michael Hartl的教程。 我经常在阅读正确的API或什至了解API在做什么时遇到问题,因为似乎有很多方法可以调用某种方法,并且在那里没有详尽地显示示例。 特别是,我不明白清单7.25中的assert_select
方法在做什么参数。
require 'test_helper'
class UsersSignupTest < ActionDispatch::IntegrationTest
test "invalid signup information" do
get signup_path
assert_no_difference 'User.count' do
post users_path, params: { user: { name: "",
email: "user@invalid",
password: "foo",
password_confirmation: "bar" } }
end
assert_template 'users/new'
assert_select 'div#<CSS id for error explanation>'
assert_select 'div.<CSS class for field with error>'
end
.
.
.
end
通过参考Online API ,如果其中一个使用不带代码块的assert_select
,我们将使用2个参数。 但是,两个示例中的每个示例中只有一个,其中#
和.
,对于这是某些Rails / Ruby / CSS语法,我不太熟悉,该语法的起源似乎参差不齐。
有人可以启发我,我在这里错过了什么? 我不太熟悉何时使用#
和何时使用.
,以及如何“缩短”参数数量。 似乎在_
等标点符号上经常有很多地方,此处未显示。
可以使用几种不同的方法来调用 assert_select
,包括仅使用CSS选择器,例如您问题中的代码。
CSS选择器可以包含#
和.
符号。 它们的含义如下:
#
引用HTML元素ID .
引用CSS类 ID在文档中必须唯一。 因此, div#error
会找到以下确切元素: <div id="error">Some error text</div>
。
另一方面,可以在整个HTML文档中重用类。 因此, div.error
将找到所有类似这样的元素: <div class="error">Some error text</div>
。
最后, #
和表示其价值.
在Ruby中也用于区分类和实例方法。 .
表示类方法。 #
表示实例方法。 但是,这不是assert_select
方法中发生的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.