Author: vborja
Date: Tue Sep 23 12:12:06 2008
New Revision: 698285

URL: http://svn.apache.org/viewvc?rev=698285&view=rev
Log:
specs for JtestR.

JtestR supports many testing frameworks:
   junit, testng, test_unit, rspec, expectations

A java compiler should be used when junit, testng files present.
Added examples for each supported testing framework.

Modified:
    incubator/buildr/trunk/spec/java/bdd_spec.rb

Modified: incubator/buildr/trunk/spec/java/bdd_spec.rb
URL: 
http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/java/bdd_spec.rb?rev=698285&r1=698284&r2=698285&view=diff
==============================================================================
--- incubator/buildr/trunk/spec/java/bdd_spec.rb (original)
+++ incubator/buildr/trunk/spec/java/bdd_spec.rb Tue Sep 23 12:12:06 2008
@@ -49,7 +49,7 @@
 
   def foo(*args, &prc)
     define('foo', *args) do
-      test.using :jtestr
+      test.using :jtestr, :output => false
       if prc
         instance_eval(&prc)
       else
@@ -62,11 +62,189 @@
     foo { test.framework.should eql(:jtestr) }
   end
 
-  it 'should include src/spec/ruby/**/*_spec.rb'
-  it 'should auto generate jtestr configuration'
-  it 'should run runit test cases'
-  it 'should use a java compiler if java sources found'
-  it 'should run junit test cases'
+  it 'should apply to projects having test_unit sources' do
+    define('one', :base_dir => 'one') do
+      write _(:source, :spec, :ruby, 'one_test.rb')
+      JtestR.applies_to?(self).should be_true
+    end
+    define('two', :base_dir => 'two') do
+      write _(:source, :spec, :ruby, 'twoTest.rb')
+      JtestR.applies_to?(self).should be_true
+    end
+    define('three', :base_dir => 'three') do
+      write _(:source, :spec, :ruby, 'tc_three.rb')
+      JtestR.applies_to?(self).should be_true
+    end
+    define('four', :base_dir => 'four') do
+      write _(:source, :spec, :ruby, 'ts_four.rb')
+      JtestR.applies_to?(self).should be_true
+    end
+  end
+
+  it 'should apply to projects having rspec sources' do
+    define('one', :base_dir => 'one') do
+      write _(:source, :spec, :ruby, 'one_spec.rb')
+      JtestR.applies_to?(self).should be_true
+    end
+  end
+
+  it 'should apply to projects having expectations sources' do
+    define('one', :base_dir => 'one') do
+      write _(:source, :spec, :ruby, 'one_expect.rb')
+      JtestR.applies_to?(self).should be_true
+    end
+  end
+
+  it 'should apply to projects having junit sources' do
+    define('one', :base_dir => 'one') do
+      write _(:source, :test, :java, 'example/OneTest.java', <<-JAVA)
+        package example;
+        public class OneTest extends junit.framework.TestCase { }
+      JAVA
+      JtestR.applies_to?(self).should be_true
+    end
+  end
+
+  it 'should apply to projects having testng sources' do
+    define('one', :base_dir => 'one') do
+      write _(:source, :test, :java, 'example/OneTest.java', <<-JAVA)
+        package example;
+        public class OneTest { 
+           @org.testng.annotations.Test
+           public void testNothing() {}
+        }
+      JAVA
+      JtestR.applies_to?(self).should be_true
+    end
+  end
+
+  it 'should use a java compiler if java sources found' do
+    foo do
+      write _(:source, :spec, :java, 'Something.java'), 'public class 
Something {}'
+      test.compile.language.should eql(:java)
+    end
+  end
+
+  it 'should load user jtestr_config.rb' do
+    foo do 
+      hello = _('hello')
+      write('src/spec/ruby/jtestr_config.rb', "File.open('#{hello}', 'w') { 
|f| f.write 'HELLO' }")
+      test.invoke
+      File.exist?(hello).should == true
+      File.read(hello).should == 'HELLO'
+    end
+  end
+
+  it 'should run junit tests' do
+    write('src/test/java/example/SuccessTest.java', <<-JAVA)
+        package example;
+        public class SuccessTest extends junit.framework.TestCase { 
+           public void testSuccess() { assertTrue(true); }
+        }
+    JAVA
+    write('src/test/java/example/FailureTest.java', <<-JAVA)
+        package example;
+        public class FailureTest extends junit.framework.TestCase { 
+           public void testFailure() { assertTrue(false); }
+        }
+    JAVA
+    foo do
+      lambda { test.invoke }.should raise_error(/Tests failed/)
+      test.tests.should include('example.SuccessTest', 'example.FailureTest')
+      test.failed_tests.should include('example.FailureTest')
+      test.passed_tests.should include('example.SuccessTest')
+    end
+  end
+
+  it 'should run testng tests' do 
+    write('src/test/java/example/Success.java', <<-JAVA)
+        package example;
+        public class Success {
+          @org.testng.annotations.Test
+          public void annotated() { org.testng.Assert.assertTrue(true); }
+        }
+    JAVA
+    write('src/test/java/example/Failure.java', <<-JAVA)
+        package example;
+        public class Failure {
+          @org.testng.annotations.Test
+          public void annotated() { org.testng.Assert.fail("FAIL"); }
+        }
+    JAVA
+    foo do
+      lambda { test.invoke }.should raise_error(/Tests failed/)
+      test.tests.should include('example.Success', 'example.Failure')
+      test.failed_tests.should include('example.Failure')
+      test.passed_tests.should include('example.Success')
+    end
+  end
+
+  it 'should run test_unit' do 
+    success = File.expand_path('src/spec/ruby/success_test.rb')
+    write(success, <<-TESTUNIT)
+      require 'test/unit'
+      class TC_Success < Test::Unit::TestCase
+        def test_success
+          assert true
+        end
+      end
+    TESTUNIT
+    failure = File.expand_path('src/spec/ruby/failure_test.rb')
+    write(failure, <<-TESTUNIT)
+      require 'test/unit'
+      class TC_Failure < Test::Unit::TestCase
+        def test_failure
+          assert false
+        end
+      end
+    TESTUNIT
+    error = File.expand_path('src/spec/ruby/error_test.rb')
+    write(error, <<-TESTUNIT)
+      require 'test/unit'
+      class TC_Error < Test::Unit::TestCase
+        def test_error
+          eval('lambda')
+        end
+      end
+    TESTUNIT
+    foo do
+      lambda { test.invoke }.should raise_error(/Tests failed/)
+      test.tests.should include(success, failure, error)
+      test.failed_tests.should include(failure, error)
+      test.passed_tests.should include(success)
+    end
+  end
+
+  it 'should run expectations' do
+    success = File.expand_path('src/spec/ruby/success_expect.rb')
+    write(success, 'Expectations { expect(true) { true } }')
+    failure = File.expand_path('src/spec/ruby/failure_expect.rb')
+    write(failure, 'Expectations { expect(true) { false } }')
+    error = File.expand_path('src/spec/ruby/error_expect.rb')
+    write(error, 'Expectations { expect(nil) { eval("lambda") } }')
+    foo do
+      lambda { test.invoke }.should raise_error(/Tests failed/)
+      test.tests.should include(success, failure, error)
+      test.failed_tests.should include(failure, error)
+      test.passed_tests.should include(success)
+    end
+  end
+
+  it 'should run rspecs' do
+    success = File.expand_path('src/spec/ruby/success_spec.rb')
+    write(success, 'describe("success") { it("is true") { nil.should be_nil } 
}')
+    failure = File.expand_path('src/spec/ruby/failure_spec.rb')
+    write(failure, 'describe("failure") { it("is false") { true.should == 
false } }')
+    error = File.expand_path('src/spec/ruby/error_spec.rb')
+    write(error, 'describe("error") { it("raises") { eval("lambda") } }')
+    foo do
+      lambda { test.invoke }.should raise_error(/Tests failed/)
+      test.tests.should include(success, failure, error)
+      test.failed_tests.should include(failure, error)
+      test.passed_tests.should include(success)
+    end
+  end
+
 
 end # JtestR
 


Reply via email to