ruby-on-rails - 无法在测试环境 Rails 中访问继承的方法
问题描述
我正在尝试编写一个测试来检查我的应用程序中的用户流。为此,我需要测试一个名为is_apple
in 的方法AppleController
,AppleController 继承自FruitsController
. 我在 FruitsController 中有一个名为的方法taste
,可以在AppleController's is_apple
方法内部使用。输出与开发和生产环境中的预期相同。但是在测试环境中,来自 FruitsController 的方法在 AppleController 中是未定义的。我是 Rails 测试的新手,我不知道在我的应用程序测试环境中可能导致此问题的原因是什么。
test_helper.rb
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
def setup
puts "starting a test"
post "v1/is_apple", params: {colour: 'red', taste: 'sweet'}
end
end
apple_controller.rb
module V1
class AppleController < FruitsController
def is_apple
return true if taste and params[:colour].eql?('red')
end
end
end
水果控制器.rb
module V1
class FruitsController < ActionController::API
def taste
# assume
return true
end
end
end
我正在使用 minitest '5.10.3' 和 rails 6。当我运行 rails test 时,在 AppleController 中得到 undefined_method 'taste'。我的代码有错误吗?,如果是,我怎样才能实现我想要的行为。提前致谢!
解决方案
推荐阅读
- asp.net-mvc - Html.Raw 中的 ASP MVC 颜色字符串
- tensorflow - Common variable name acronym for Pytorch or Tensorflow?
- verilog - 如果在实例化的子模块中使用输出应该是输出 reg 吗?
- php - 如何在wordpress主页的产品缩略图中显示产品评级?
- android - Mapbox Android Marker 已弃用 API 21+
- php - 为什么 nginx 在我的 PHP 文件下载时返回 403?
- asp.net - 在 Angular 7 中的 http post 后显示数据
- javascript - JQuery/Javascript:新的 RegExp() 停止循环
- c# - 部分视图以整页形式返回
- java - 如何获取 Arraylist 中的 Hashmap 值