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

发布于 2024-12-26 12:52:48 字数 469 浏览 1 评论 0原文

我有一个简单的 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库?

I have a simple spring mvc application that I want to test with using rspec and cucumber (or with rspec's integration testing features).

How do I go about importing my java war file so rspec can use it?

Any suggestions on folder structure also?

I'm using maven also, so I have this so far:

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

Should I add rspec and cucumber like:

/project_name/spec
/project_name/features

I'm confused how rspec will be able to import my java libs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

∞觅青森が 2025-01-02 12:52:48

确保包已构建,然后:

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

https://github.com/jruby/jruby/wiki/从JRuby 调用Java

Make sure the package is built, then:

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

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

孤星 2025-01-02 12:52:48

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

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

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

创建一个指定 Ginkgo4jRunner 运行程序的 JUnit 测试用例:

@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
        });
      });
    }); 
  }
}

Why don't you try Ginkgo4j? It a Java port of RSpec that allows you to test the same way as RSpec, just in Java.

Add this dependency to your POM:

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

Create a JUnit test case specifying the 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
        });
      });
    }); 
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文