gpt4 book ai didi

ruby-on-rails - 什么是单元/助手 - 从 ActionView::TestCase 继承的类?

转载 作者:行者123 更新时间:2023-11-28 20:45:27 25 4
gpt4 key购买 nike

我找不到任何提及这些类的信息,这些类通常在 Rails 指南中称为 HelperTest 或使用 Rails 进行敏捷 Web 开发。上网查了一下,好像大部分人都是用它们来测试 helper 的。但是为什么脚手架会为每个模型类创建其中一个呢?为什么它被置于测试\单元之下?如果有一个很好的例子说明应该在何处以及如何使用它们,我将不胜感激。脚手架生成的这种辅助文件如果不用就直接删除是不是错了?提前致谢

最佳答案

正如您所指出的,脚手架生成器(此处为“帖子”)在 test/unit/helpers 下创建辅助测试:

test
├── fixtures
│   └── posts.yml
├── functional
│   └── posts_controller_test.rb
├── integration
├── performance
│   └── browsing_test.rb
├── test_helper.rb
└── unit
├── helpers
│   └── posts_helper_test.rb
└── post_test.rb

它们是单元测试,因为助手只是应该单独测试的方法;另外,如果您认为 View 应该保持轻量级,那可能意味着帮助程序最终会有很多逻辑并且应该像您的模型一样进行测试。

所以,给定这个助手(在 app/helpers/posts_helper.rb 中)

module PostsHelper

def hello
content_tag :div, :class => "detail" do
"hi"
end
end
end

你可以像这样写一个测试:

require 'test_helper'

class PostsHelperTest < ActionView::TestCase

test "hello" do
assert_equal(hello, "<div class=\"detail\">hi</div>")
end

end

它们只是方法,所以使用与任何单元测试相同的匹配器(assert_equalassert_match); assert_dom_equal 在这里也派上了用场。 (参见 http://cheat.errtheblog.com/s/assert_dom_equal/

希望对您有所帮助:)

凯尔

关于ruby-on-rails - 什么是单元/助手 - 从 ActionView::TestCase 继承的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com