我在个人项目中使用 Active Storage 。我想检查文件的最大大小是否正在验证。我不想使用真实的文件,但我不知道如何存根对象。
这是测试代码:
test "should not upload file bigger than max size allowed" do
refute @page.file.attached?
patch "/#{@page.url}", params: {
page: {
url: "/#{@page.url}",
file: my_stub_file_with_big_size
}
}
assert_response :not_acceptable
@page.reload
refute @page.file.attached?
end
Run Code Online (Sandbox Code Playgroud)
这是模型的验证:
def file_size
if file.attached? && file.byte_size > MAX_FILE_SIZE
file.purge
errors.add(:file, "File is too big. Max size is 20mb.")
end
end
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的 Sinatra 应用程序:
my_module.rb
module MyModule
def my_method
"yay"
end
end
Run Code Online (Sandbox Code Playgroud)
应用程序.rb
get "/my_module" do
puts my_method
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用和my_method进行测试。Minitestmocha
def test_my_method
MyModule.stubs(:my_method).returns("stubbed")
get "/my_module"
end
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,因为原始方法仍然被调用。关于如何做到这一点有什么想法吗?谢谢!