From 695f0101c0452417c9ea4aa36b2ab87f0b30765d Mon Sep 17 00:00:00 2001 From: Wouter Groeneveld Date: Mon, 27 Jun 2011 10:06:00 +0200 Subject: [PATCH] now builds test descriptions recursively --- ...DescriptionsRecursiveTreeInRunnerTest.java | 50 +++++++++++++++++++ ...DescriptionsWithMultipleSpecFilesTest.java | 26 ++++++++++ src/test/javascript/specs/recursiveSpec.js | 32 ++++++++++++ 3 files changed, 108 insertions(+) create mode 100755 src/test/java/be/klak/junit/jasmine/DescriptionsRecursiveTreeInRunnerTest.java create mode 100755 src/test/java/be/klak/junit/jasmine/DescriptionsWithMultipleSpecFilesTest.java create mode 100755 src/test/javascript/specs/recursiveSpec.js diff --git a/src/test/java/be/klak/junit/jasmine/DescriptionsRecursiveTreeInRunnerTest.java b/src/test/java/be/klak/junit/jasmine/DescriptionsRecursiveTreeInRunnerTest.java new file mode 100755 index 0000000..e86f2d3 --- /dev/null +++ b/src/test/java/be/klak/junit/jasmine/DescriptionsRecursiveTreeInRunnerTest.java @@ -0,0 +1,50 @@ +package be.klak.junit.jasmine; + +import static org.fest.assertions.Assertions.assertThat; + +import org.junit.Test; +import org.junit.runner.Description; + +public class DescriptionsRecursiveTreeInRunnerTest { + + @JasmineSuite(specs = { "recursiveSpec.js" }) + private class RecursiveTreeTest { + } + + @Test + public void buildDescriptionsRecursively() { + Description baseTestDescription = new JasmineTestRunner(RecursiveTreeTest.class).getDescription(); + assertThat(baseTestDescription.getDisplayName()).contains(RecursiveTreeTest.class.getSimpleName()); + + assertThat(baseTestDescription.getChildren()).hasSize(1); + Description root = baseTestDescription.getChildren().get(0); + assertThat(root.getDisplayName()).isEqualTo("root"); + assertThat(root.getChildren()).hasSize(3); + + assertThat(root.getChildren().get(0).getDisplayName()).isEqualTo("rootTest"); + assertChild1AndChildren(root); + assertChild2AndChildren(root); + } + + private void assertChild2AndChildren(Description root) { + Description child2 = root.getChildren().get(2); + assertThat(child2.getDisplayName()).isEqualTo("child2"); + + assertThat(child2.getChildren()).hasSize(1); + assertThat(child2.getChildren().get(0).getDisplayName()).isEqualTo("child2Test"); + } + + private void assertChild1AndChildren(Description root) { + Description child1 = root.getChildren().get(1); + assertThat(child1.getDisplayName()).isEqualTo("child1"); + + assertThat(child1.getChildren()).hasSize(2); + assertThat(child1.getChildren().get(0).getDisplayName()).isEqualTo("child1Test"); + Description grandchild = child1.getChildren().get(1); + assertThat(grandchild.getDisplayName()).isEqualTo("grandchild"); + + assertThat(grandchild.getChildren()).hasSize(1); + assertThat(grandchild.getChildren().get(0).getDisplayName()).isEqualTo("grandchildTest"); + } + +} diff --git a/src/test/java/be/klak/junit/jasmine/DescriptionsWithMultipleSpecFilesTest.java b/src/test/java/be/klak/junit/jasmine/DescriptionsWithMultipleSpecFilesTest.java new file mode 100755 index 0000000..03877d3 --- /dev/null +++ b/src/test/java/be/klak/junit/jasmine/DescriptionsWithMultipleSpecFilesTest.java @@ -0,0 +1,26 @@ +package be.klak.junit.jasmine; + +import static org.fest.assertions.Assertions.assertThat; + +import org.junit.Test; +import org.junit.runner.Description; + +import be.klak.junit.jasmine.classes.JasmineSuiteGeneratorClassWithRunner; + +public class DescriptionsWithMultipleSpecFilesTest { + + @Test + public void getDescriptionsShouldIncludeBothSpec1AndSpec2SuiteInfo() { + Description root = new JasmineTestRunner(JasmineSuiteGeneratorClassWithRunner.class).getDescription(); + + assertThat(root.getChildren()).hasSize(2); + Description spec1 = root.getChildren().get(0); + assertThat(spec1.getDisplayName()).isEqualTo("spec 1"); + assertThat(spec1.getChildren()).hasSize(1); + + Description spec2 = root.getChildren().get(1); + assertThat(spec2.getDisplayName()).isEqualTo("spec 2"); + assertThat(spec2.getChildren()).hasSize(1); + } + +} diff --git a/src/test/javascript/specs/recursiveSpec.js b/src/test/javascript/specs/recursiveSpec.js new file mode 100755 index 0000000..573d750 --- /dev/null +++ b/src/test/javascript/specs/recursiveSpec.js @@ -0,0 +1,32 @@ + +describe("root", function() { + + it("rootTest", function() { + + }); + + describe("child1", function() { + + it("child1Test", function() { + + }); + + describe("grandchild", function() { + + it("grandchildTest", function() { + + }); + + }); + + }); + + describe("child2", function() { + + it("child2Test", function() { + + }); + + }); + +}); \ No newline at end of file