我的应用程序控制器如下:
contents.css
如何为ApplicationController进行测试?
我想传入URLS然后检查@customer是否为nil等。
例如要测试的URL
class ApplicationController
before_action :set_customer
def customer?
@customer.nil?
end
private
def set_customer
if request.host != "example.com"
@customer = Customer.find_by_domain("...")
else
if request.subdomain != "www"
@customer = Customer.find_by_sub("...")
end
end
end
end
答案 0 :(得分:0)
您不应该测试实例变量。如果需要,将代码移动到服务对象。
assigns
将在Rails 5中弃用,因此可能会在某些时候删除。在控制器测试中,您希望根据您的用户(身份验证)和授权检查响应是否符合您的预期(响应代码),并且可能使用正确的格式。
在另一个测试中("视图"测试,我的意思是集成测试),您还要检查视图中的输出是否包含基于实例变量的某些值。
在这种情况下,您只需根据您的子句测试服务调用Customer.find_by_sub
(或by_domain
),并且您需要测试的所有内容,实例变量不应该是'是你关心的事情。