Как использовать rspec для java-приложения, использующего jruby? - PullRequest
0 голосов
/ 14 января 2012

У меня есть простое весеннее mvc-приложение, которое я хочу протестировать с использованием rspec и cucumber (или с функциями интеграционного тестирования rspec).

Как мне импортировать мой файл war 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 ]

1 голос
/ 15 января 2012

Убедитесь, что пакет собран, затем:

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

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

0 голосов
/ 02 июня 2018

Почему бы вам не попробовать Ginkgo4j ? Это порт Java RSpec, который позволяет вам тестировать так же, как RSpec, только на Java.

Добавьте эту зависимость к вашему POM:

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

Создание контрольного примера JUnit с указанием бегуна Ginkgo4jRunner:

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