小编Mat*_*ard的帖子

如何在 Active Storage 测试中存根文件大小?(测试::单位)

我在个人项目中使用 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)

testing ruby-on-rails file mocking rails-activestorage

6
推荐指数
1
解决办法
3863
查看次数

如何使用 Mocha 在控制器内存根模块方法

我有一个像这样的 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)

但这似乎不起作用,因为原始方法仍然被调用。关于如何做到这一点有什么想法吗?谢谢!

ruby module stub sinatra ruby-mocha

3
推荐指数
1
解决办法
2043
查看次数