nutrasuite 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -50,11 +50,21 @@ All of your other minitest stuff should work normally. Context
50
50
  setup/teardown is executed once for each test, so the randomization built into
51
51
  minitest will still work as you'd expect.
52
52
 
53
+ `a`, `an`, `and`, `the`, and `that` all define contexts, so you can build
54
+ readable sentences like "_a_ user _that_ has an expired password _and_ a bad email
55
+ address" or "_the_ singleton."
56
+
57
+ `it` defines tests; `it_eventually` defines tests that are to be skipped.
58
+
53
59
  ## Get it
54
60
 
55
61
  It's a gem named nutrasuite. Install it and make it available however
56
62
  you prefer.
57
63
 
64
+ If you want to use it you'll at least need Ruby 1.9. Other than that it should
65
+ be compatible with anything that works with MiniTest; we're not currently aware
66
+ of any conflicts.
67
+
58
68
  ## Contributions
59
69
 
60
70
  If Nutrasuite interests you and you think you might want to contribute, hit me up
@@ -34,7 +34,7 @@ module Nutrasuite
34
34
 
35
35
  # Defines a test based on the given context that will be skipped for now
36
36
  def it_eventually(name, &block)
37
- build_test(name, :skip => true, &block)
37
+ build_test("eventually #{name}", :skip => true, &block)
38
38
  end
39
39
 
40
40
  def build_test(name, options = {}, &block)
@@ -64,11 +64,17 @@ module Nutrasuite
64
64
  puts " * Warning: #{message}"
65
65
  end
66
66
 
67
- include MiniTest::Assertions
67
+ # ugly, but we need to make sure that all assertions work as intended
68
+ def method_missing(name, *args, &block)
69
+ unless MiniTest::Unit::TestCase.current.nil?
70
+ MiniTest::Unit::TestCase.current.send(name, *args, &block)
71
+ else
72
+ super(name, *args, &block)
73
+ end
74
+ end
68
75
  end
69
76
 
70
77
  class Context
71
- include ContextHelpers
72
78
 
73
79
  attr_reader :name, :setups, :teardowns
74
80
 
@@ -115,6 +121,23 @@ module Nutrasuite
115
121
  end
116
122
  end
117
123
 
124
+ # backwards compatibility with some slightly older versions of minitest
125
+ unless defined? MiniTest::Unit::TestCase.current
126
+ class MiniTest::Unit::TestCase
127
+ def initialize name
128
+ @__name__ = name
129
+ @__io__ = nil
130
+ @passed = nil
131
+ @@current = self
132
+ end
133
+
134
+ def self.current
135
+ @@current ||= nil
136
+ end
137
+ end
138
+ end
139
+
140
+
118
141
  class MiniTest::Unit::TestCase
119
142
  extend Nutrasuite::ContextHelpers
120
143
  end
@@ -1,3 +1,3 @@
1
1
  module Nutrasuite
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
data/test/test_helper.rb CHANGED
@@ -1,3 +1 @@
1
- require 'test/unit'
2
-
3
1
  require 'nutrasuite'
@@ -1,6 +1,8 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class ContextsTest < Test::Unit::TestCase
4
+ binding.pry
5
+
4
6
  it "allows tests outside of any context" do
5
7
  assert true
6
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nutrasuite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: