Paperclip Documentation提供了設置適用於RSpec和Test :: Unit的Paperclip適配器的說明。但是,當我試圖將它們設置爲Minitest時,我沒有成功(我遵循與Test :: Unit相同的說明)。Paperclip適用於Miniteset的適配器
有誰知道什麼需要製作Papercips Shoulda匹配器可以與Minitest一起使用嗎?
Paperclip Documentation提供了設置適用於RSpec和Test :: Unit的Paperclip適配器的說明。但是,當我試圖將它們設置爲Minitest時,我沒有成功(我遵循與Test :: Unit相同的說明)。Paperclip適用於Miniteset的適配器
有誰知道什麼需要製作Papercips Shoulda匹配器可以與Minitest一起使用嗎?
我創建了一個寶石本:https://github.com/cschramm/rspec2minitest
就包括它在你的Gemfile並在test_helper把require 'rspec2minitest/paperclip'
。
萬一有人來這裏從谷歌和我一樣......這結束了對我的工作與MINITEST規格的護欄&一些自定義的斷言
# test_helper.rb
require 'paperclip/matchers'
class ActiveSupport::TestCase
extend Paperclip::Shoulda::Matchers
include Paperclip::Shoulda::Matchers
# ... other code
end
module Minitest
module Assertions
##
# Passes if matcher.matches?(subject) returns true
#
# Example:
#
# def test_validations
# assert_must be_valid, @user
# end
def assert_must(matcher, subject, msg = nil)
msg = message(msg) do
if matcher.respond_to? :failure_message
matcher.failure_message # RSpec 3.x, 1.1
else
matcher.failure_message_for_should # RSpec 2.x, 1.2
end
end
assert matcher.matches?(subject), msg
end
##
# Facilitator to assert_must for use with minitest-spec. If no subject
# given, defaults to matching against the current `subject` or the
# instance variable `@subject`.
#
# Example:
#
# subject { Order.new }
#
# it "should have associations" do
# must belong_to :account
# must have_many :line_items
# end
def must(matcher, subject = @subject || subject, msg = nil)
assert_must matcher, subject, msg
end
##
# Passes if matcher.matches?(subject) returns false
#
# Example:
#
# def test_validations
# assert_wont be_valid, @user
# end
def assert_wont(matcher, subject, msg = nil)
msg = message(msg) do
if matcher.respond_to? :failure_message_when_negated # RSpec 3.x
matcher.failure_message_when_negated # RSpec 3.x
elsif matcher.respond_to? :failure_message_for_should_not
matcher.failure_message_for_should_not # RSpec 2.x, 1.2
else
matcher.negative_failure_message # RSpec 1.1
end
end
if matcher.respond_to? :does_not_match?
assert matcher.does_not_match?(subject), msg
else
refute matcher.matches?(subject), msg
end
end
##
# Facilitator to assert_wont for use with minitest-spec. If no subject
# given, defaults to matching against the current `subject` or the
# instance variable `@subject`.
#
# Example:
#
# subject { User.new }
#
# it "should validate" do
# wont have_valid(:email).when("foo", "[email protected]", "@bar.com")
# end
def wont(matcher, subject = @subject || subject, msg = nil)
assert_wont matcher, subject, msg
end
end
end