Created
August 28, 2011 12:19
-
-
Save wojtekmach/1176601 to your computer and use it in GitHub Desktop.
minitest + valid_attribute
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
gem "minitest" | |
require "minitest/spec" | |
require "minitest/autorun" | |
require "active_model" | |
require "test/unit" | |
require "valid_attribute" | |
require "turn" | |
class MiniTest::Unit::TestCase | |
extend ValidAttribute::Method | |
end | |
class Post | |
attr_accessor :title | |
include ActiveModel::Validations | |
validates :title, :presence => true, :length => 2..16 | |
end | |
class MiniTest::Spec | |
class << self | |
def it_must &block | |
matcher = yield | |
it "must #{matcher.description}" do | |
result = matcher.matches? subject | |
assert result, matcher.failure_message | |
end | |
end | |
def it_wont &block | |
matcher = yield | |
it "wont #{matcher.description}" do | |
result = matcher.does_not_match? subject | |
assert result, matcher.negative_failure_message | |
end | |
end | |
end | |
end | |
describe "Post" do | |
subject { Post.new } | |
it_must { have_valid(:title).when("Hello") } | |
it_wont { have_valid(:title).when(nil, "", "X") } | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I created a separate issue on the minitest project page minitest/minitest#33 so we'll see how it goes there.
The way i see it we have two options to continue:
a) Minitest itself will have a support for matchers (included or via a gem)
b) Something along these lines:
That
extend ValidAttribute::MiniTest
can of course be pushed insideMiniTest::Spec