<<>Esssence:
• 如何在日美特州进行的原始交易 测试JBehave?
问题似乎是,JBehave想要的是SpringAnnotated。 EmbedderRunner
,但指出测试为@ Transactional
要求SpringJUnit4ClassRunner
。
Ive试图找到一些文件,说明如何执行<代码>的滚动,或利用<代码>进行脱色。 SpringJUnit4ClassRunner,但我无法工作。
Does anyone have a (preferably simple) setup that runs JBehave storries with Spring and Hibernate and transaction auto-rollback?
www.un.org/spanish/ecosoc 关于我至今的设置的进一步信息:
JBeact with Spring - but not with autorollback:
@RunWith(SpringAnnotatedEmbedderRunner.class)
@Configure(parameterConverters = ParameterConverters.EnumConverter.class)
@UsingEmbedder(embedder = Embedder.class, generateViewAfterStories = true, ignoreFailureInStories = false, ignoreFailureInView = false)
@UsingSpring(resources = { "file:src/main/webapp/WEB-INF/test-context.xml" })
@UsingSteps
@Transactional // << won t work
@TransactionConfiguration(...) // << won t work
// both require the SpringJUnit4ClassRunner
public class DwStoryTests extends JUnitStories {
protected List<String> storyPaths() {
String searchInDirectory = CodeLocations.codeLocationFromPath("src/test/resources").getFile();
return new StoryFinder().findPaths(searchInDirectory, Arrays.asList("**/*.story"), null);
}
}
在我的测试步骤中,我可以@ Inject
everything:
@Component
@Transactional // << won t work
public class PersonServiceSteps extends AbstractSmockServerTest {
@Inject
private DatabaseSetupHelper databaseSetupHelper;
@Inject
private PersonProvider personProvider;
@Given("a database in default state")
public void setupDatabase() throws SecurityException {
databaseSetupHelper.createTypes();
databaseSetupHelper.createPermission();
}
@When("the service $service is called with message $message")
public void callServiceWithMessage(String service, String message) {
sendRequestTo("/personService", withMessage("requestPersonSave.xml")).andExpect(noFault());
}
@Then("there should be a new person in the database")
public void assertNewPersonInDatabase() {
Assert.assertEquals("Service did not save person: ", personProvider.count(), 1);
}
(即数据库SetupHelper方法均为交易)
个人资料基本上围绕<条码>org.childrenframework.data.jpa.repository.support.SimpleJpaRepository。 因此,可以接触实体 管理者,但控制交易(开工/开工)时,我猜测,因为所有<条码>@Transactional都是在这个助手队伍内进行的。
我也读到,JBehave在一种不同的背景下运行? 届会 什么? 试验开始的交易失去控制吗? 混淆不清。
<<>strong>edit:
above上上述职位,以反映我目前的知识,缩短整个时间,使问题变得更明显,而设置则不那么明显。