aboutsummaryrefslogtreecommitdiffstats
path: root/test/minitest/test_minitest_spec.rb
diff options
context:
space:
mode:
authorryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-08-23 21:47:25 +0000
committerryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-08-23 21:47:25 +0000
commit2c43b9664b29f76c73ac8bae5400b79d0a5313e0 (patch)
tree6e9b4a581ac460c38d22de2750939fa815a98295 /test/minitest/test_minitest_spec.rb
parent885f5fa2b0c1ba20a26759e65fefeece48cb56db (diff)
downloadruby-2c43b9664b29f76c73ac8bae5400b79d0a5313e0.tar.gz
Imported minitest 2.5.0 (r6557)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/minitest/test_minitest_spec.rb')
-rw-r--r--test/minitest/test_minitest_spec.rb60
1 files changed, 53 insertions, 7 deletions
diff --git a/test/minitest/test_minitest_spec.rb b/test/minitest/test_minitest_spec.rb
index 942156abdb..26dd4ec46a 100644
--- a/test/minitest/test_minitest_spec.rb
+++ b/test/minitest/test_minitest_spec.rb
@@ -4,11 +4,9 @@
# File a patch instead and assign it to Ryan Davis.
######################################################################
-require 'minitest/spec'
+require 'minitest/autorun'
require 'stringio'
-MiniTest::Unit.autorun
-
describe MiniTest::Spec do
before do
@assertion_count = 4
@@ -202,6 +200,53 @@ describe MiniTest::Spec do
end
end
+describe MiniTest::Spec, :let do
+ i_suck_and_my_tests_are_order_dependent!
+
+ def _count
+ $let_count ||= 0
+ end
+
+ let :count do
+ $let_count += 1
+ $let_count
+ end
+
+ it "is evaluated once per example" do
+ _count.must_equal 0
+
+ count.must_equal 1
+ count.must_equal 1
+
+ _count.must_equal 1
+ end
+
+ it "is REALLY evaluated once per example" do
+ _count.must_equal 1
+
+ count.must_equal 2
+ count.must_equal 2
+
+ _count.must_equal 2
+ end
+end
+
+describe MiniTest::Spec, :subject do
+ attr_reader :subject_evaluation_count
+
+ subject do
+ @subject_evaluation_count ||= 0
+ @subject_evaluation_count += 1
+ @subject_evaluation_count
+ end
+
+ it "is evaluated once per example" do
+ subject.must_equal 1
+ subject.must_equal 1
+ subject_evaluation_count.must_equal 1
+ end
+end
+
class TestMeta < MiniTest::Unit::TestCase
def test_setup
srand 42
@@ -245,8 +290,8 @@ class TestMeta < MiniTest::Unit::TestCase
assert_equal "inner thingy", y.desc
assert_equal "very inner thingy", z.desc
- top_methods = %w(setup teardown test_0001_top_level_it)
- inner_methods = %w(setup teardown test_0001_inner_it)
+ top_methods = %w(test_0001_top_level_it)
+ inner_methods = %w(test_0001_inner_it)
assert_equal top_methods, x.instance_methods(false).sort.map {|o| o.to_s }
assert_equal inner_methods, y.instance_methods(false).sort.map {|o| o.to_s }
@@ -257,8 +302,9 @@ class TestMeta < MiniTest::Unit::TestCase
_, _, z, before_list, after_list = util_structure
tc = z.new(nil)
- tc.setup
- tc.teardown
+
+ tc.run_setup_hooks
+ tc.run_teardown_hooks
assert_equal [1, 2, 3], before_list
assert_equal [3, 2, 1], after_list