Я использую mockito вместе с огурцом, где mock и stepdefinitions определены вместе в одном классе, который работает нормально. Теперь я * wi sh реорганизую свой код в более мелкие классы определений шагов и, скорее, получу доступ к моим макетам через помощников stati c из каждого класса stepDefinition. Моя проблема в том, что я не могу инициализировать мои макеты, когда они отделены от моих классов stepDefinitions.
Модули:
cucumber-junit 4.8.0
cucumber-java 4.8.0
mockito-core 3.3.3
I sh сделать что-то вроде этого:
@RunWith(Cucumber.class)
@CucumberOptions(
plugin = {"pretty", "html:target/cucumber"},
features = {"src/test/resources/features"},
glue = {"bdd.steps"},
monochrome = true)
public class RunCucumberTest {
}
public class MockDataHelper{
@Mock private BookService bookService;
@Getter
private static Library library;
@Before
public void before() {
MockitoAnnotations.initMocks(this);
library = new Library(bookService);
}
package bdd.steps;
public class StepsA {
@Given("..") {
...
@When("..") {
MockDataWrapper.getLibrary().rentBook(..);
}
package bdd.steps;
public class StepsB {
@Given("..")
...
}
I мог добиться того, чего я хочу, с помощью заводского метода, но надеялся на более элегантное решение ..
public Library getLibrary(){
if(library == null){
library = new Library(mock(bookService.class));
}
return library;
}
Любая помощь очень ценится