Ruby on rails 仍然可以在rails 4中使用测试单元吗?
在从Rails3.2升级到Rails4之后,我的应用程序工作了,但是我用测试单元编写的测试是一场灾难 传闻Minitest与测试单元“兼容”。但是,如果我尝试使用(现在捆绑的)Minitest,则会有很多不同之处——从assert*语句名称和参数到(显然)许多其他大而小的东西 如果我试图避免Minitest,并试图将我的测试单元gem保存在Gemfile中,rake测试就会爆炸,并说Ruby on rails 仍然可以在rails 4中使用测试单元吗?,ruby-on-rails,ruby,ruby-on-rails-4,testunit,minitest,Ruby On Rails,Ruby,Ruby On Rails 4,Testunit,Minitest,在从Rails3.2升级到Rails4之后,我的应用程序工作了,但是我用测试单元编写的测试是一场灾难 传闻Minitest与测试单元“兼容”。但是,如果我尝试使用(现在捆绑的)Minitest,则会有很多不同之处——从assert*语句名称和参数到(显然)许多其他大而小的东西 如果我试图避免Minitest,并试图将我的测试单元gem保存在Gemfile中,rake测试就会爆炸,并说 undefined method 'refute_predicate' for class 'ActiveSup
undefined method 'refute_predicate' for class 'ActiveSupport::TestCase'
这是因为打过电话
require 'rails/test_help'
:(
我已经搜索了一段时间,但还没有找到继续使用测试单元的方法。唯一的选择似乎是(对我们来说,大规模)重构我们的测试代码,因为Minitest与测试单元的不兼容性以某种方式破坏了我们80%的测试
然而,在阅读中,我发现在实质上没有提到这一点——我觉得我肯定错过了什么
是否有可能以系统的方式使Minitest与测试单元更兼容?或者继续在Rails 4中使用测试单元?您是否子类化了:test::unit::TestCase而不是ActiveSupport::TestCase 也许可以尝试将minitest____shim添加到您的测试组:
或者确保将ActiveSupport::TestCase子类化为Yes Rails support Test::Unit 对测试用例使用全局搜索和替换来更改方法名称 下面是一个集成测试:
class UserFlowsTest < ActionDispatch::IntegrationTest
class UserFlowsTest
以下是控制器测试:
class UsersControllerTest < ActionController::TestCase
类UsersControllerTest尝试
rails new app
复制自动生成的帮助程序和框架文件,并查看示例。您能否更具体地说明遇到了哪些不兼容?assert_include vs.assert_include vs.assert_not_include vs.assert_not_include vs.assert_false vs.returne,assert_true vs.assert.这个过程符合新的基本测试要求hod缺失(有必要对其进行包装,以防止在控制器测试的请求之间涂抹控制器实例变量)。由于一系列测试仍然失败,我在这一点上放弃了。您是否愿意就此进行远程配对?给我发封电子邮件,我们将进行设置。