- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个标准的insert_difference
更新测试:
assert_difference 'Article.count' do
post :create, article: {...}
end
是否可以在测试字符串时执行与insert_difference
等价的操作?
assert_difference 'Article.name' do
post :create, article: {...}
end
# TypeError: no implicit conversion of Fixnum into String
最佳答案
这样做的技术含量低的方法:
assert_equal 'before', Article.name
post :create, article: { ... }
assert_equal 'after', Article.name
如果您愿意,您可以编写自己的断言方法来将其包装起来,但除非在您的测试中普遍使用它,否则我会避免这样做,否则它会混淆实际发生的事情。
assert_difference
旨在用于返回整数值的方法,仅此而已,但您可以将该设计用作您自己的基于字符串的设计的基础。
现在我在这里发现奇怪的是 Article.name
是一个类方法,所以如果您希望更改特定实例,则需要这样做:
article = articles(:example)
assert_equal 'before', article.name
post :create, article: { ... }
article.reload
assert_equal 'after', article.name
这就是我在许多试图断言记录实际上已更改的测试中经常看到的情况。
关于ruby-on-rails - assert_difference 与字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35779316/
context 'with event_type is available create event' do let(:event_type) { EventType.where( name: '
我正在做功能测试,刚刚发现了 assert_difference,如: assert_difference('Account.count') do post :create, :account =
这是一个标准的insert_difference 更新测试: assert_difference 'Article.count' do post :create, article: {...} e
A Book has_many Reviews 和 Review belongs_to Book。我正在使用 rails 4.0 和 ruby 2.0.0p247 我正在运行测试如下: test
我是 Rails 测试的新手,我正在尝试理解对 assert_difference 的调用。来自documentation , 我推断该方法需要一个数值来表示表达式的前一个值和最终值之间的差异。如果我
我想测试一个函数如何改变数据库中的某些东西。我正在努力处理与以下 ActiveSupport::TestCase 测试用例等效的 ExUnit: test "creates a database re
我有以下测试: it 'create action: a user replies to a post for the first time' do login_as user # Actio
我有一个测试,我在其中完成了对拥有一个帐户的用户的付款。该帐户包含余额并有许多交易。 付款完成后,将创建交易并更新帐户余额。 使用 assert_difference 检查交易数量的变化给出了预期的结
这真的是最好的方法吗? assert_difference('u.point', 10) do assert_difference('u.point_logs.count') do ass
Rails 有一个断言,可以在执行块后测试值的差异。来自 here : assert_difference 'Article.count', 1 do post :create, article:
在 Rails 创建的功能测试中(使用脚手架生成模型时),有一个测试如下所示: test "should create product" do assert_difference('Produ
我是一名优秀的程序员,十分优秀!