如何使用jruby为java应用程序使用rspec?

时间:2012-01-14 03:34:03

标签: java rspec jruby

我有一个简单的spring mvc应用程序,我想使用rspec和cucumber(或使用rspec的集成测试功能)进行测试。

如何导入我的java war文件以便rspec可以使用它?

有关文件夹结构的任何建议吗?

我也在使用maven,所以到目前为止我有这个:

/project_name/src/main
/project_name/src/main/java
/project_name/src/main/webapp
/project_name/src/main/test
/project_name/src/main/resources

我应该添加rspec和黄瓜,如:

/project_name/spec
/project_name/features

我很困惑rspec如何导入我的java库?

2 个答案:

答案 0 :(得分:1)

确保构建包,然后:

require 'java'
require "/some/path/\*.jar" 
instance = Java::my.package.MyClass.new
instance.should be

https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby

答案 1 :(得分:0)

为什么不试试Ginkgo4j?它是RSpec的Java端口,允许您以与RSpec相同的方式进行测试,只需使用Java。

将此依赖项添加到您的POM:

    <dependency>
        <groupId>com.github.paulcwarren</groupId>
        <artifactId>ginkgo4j</artifactId>
        <version>1.0.9</version>
        <scope>test</scope>
    </dependency>

创建一个JUnit测试用例,指定Ginkgo4jRunner runner:

@RunWith(Ginkgo4jRunner.class)
@Ginkgo4jConfiguration(threads = 1)
public class MyTest {
  {
    Describe("ClassUnderTest", () -> {
      Context("#Method", () -> {
        BeforeEach(() -> {
          // before test logic          
        }); 
        JustBeforeEach(() -> {
          ClassUnderTest.Method();          
        }); 
        Context("given a context", () -> {
          It("should do something", () -> {
            // assertions
          });
        });
        Context("given a different context", () -> {
          It("should do something else", () -> {
            // assertions
          });
        });
        AfterEach(() -> {
          // after test logic
        });
      });
    }); 
  }
}