以下测试用例在功能上正常工作,但其中一个必须在数据库中创建新文章的测试方法在测试用例执行结束时不会回滚.
我希望它以这种方式工作.对于测试用例,更新文章实际上在测试用例执行结束时回滚更新.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = "/applicationContext-test.xml")
@TransactionConfiguration(transactionManager = "txManager", defaultRollback = true)
@Transactional
public class PriceRepositoryTest {
@Resource(name ="repository")
private PriceRepository repository;
@Test
public void testGetAll() throws Exception {
Assert.assertEquals(8, repository.getAll().size());
}
@Test
@Rollback
public void shouldSaveNewArticle(){
Article article = new Article();
article.setName("Article");
article.setPrice(33);
repository.save(article);
Assert.assertEquals(9, repository.getAll().size());
}
@Test
@Rollback
public void shouldUpdateArticle(){
Article article = repository.getArticle(4);
article.setPrice(33);
repository.update(article);
Assert.assertEquals(String.valueOf(33.0), String.valueOf(repository.getArticle(4).getPrice()));
}
Run Code Online (Sandbox Code Playgroud)
}
在play框架中以测试模式运行时,我注意到了几个问题.
在修改application.conf以启用测试数据库之后,如果没有创建测试数据库,它会自动获取dev数据库,我不知道这是否正确.
我无法将evolutions应用于测试数据库.我如何专门将evolutions应用于测试数据库,因为我在开始使用dev数据库后很长时间创建了测试数据库.
以下是application.conf的内容
%test.application.mode=dev<br/>
%test.db.url=postgres://postgres:Passw0rd@localhost/dashboard_test<br/>
%test.jpa.ddl=create-drop
Run Code Online (Sandbox Code Playgroud) 当我的弹簧加载时,它表示applicationContext.xml在类路径中没有通过投掷找到,FileNotFoundException如下所示.请帮我解决这个问题.
我的web.xml内容如下,
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/Context.xml</param-value>
</context-param>
<servlet>
<servlet-name>flex</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/web-spring-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet-mapping>
<servlet-name>flex</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
抛出的异常如下,
SEVERE:异常将上下文初始化事件发送到类的监听器实例org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanDefinitionStoreException:IOException从类路径资源[applicationContext.xml]解析XML文档; 嵌套异常是java.io.FileNotFoundException:类路径资源[applicationContext.xml]无法打开,因为它不存在引起:java.io.FileNotFoundException:类路径资源[applicationContext.xml]无法打开,因为它不存在在org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:135)在org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:297)在org.springframework.beans.factory.xml位于org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java)的org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)中的.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280) :147)在org.sprin的org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:123)位于org.springframework.context上的org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:100)中的gframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:100).(AbstractRefreshableApplicationContext.java:100)atg.springframework.context.support.AbstractApplicationContext.refresh( AbstractApplicationContext.java:298)org.springframework上的org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246) .web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java :3843)在org.apache.catalina的org.apache.catalina.core.StandardContext.start(StandardContext.java:4342).core.ContainerBase.addChildInternal(ContainerBase.java:791)在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)在org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)在org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)在org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:492)在org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)在org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)在org.apache. catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)在org.apache.catalina.core.StandardHost.start(StandardHost.java: 719)org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)org.apache.catalina.core.S tandardService.start(StandardService.java:516)位于org.apache.catalina.core.StandardServer.start(StandardServer.java:710)org.apache.catalina.startup.Catalina.start(Catalina.java:578)at sun at.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke (Method.java:585)org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2009年11月12日4 :02:09 PM org.apache.catalina.core.ApplicationContext log
当我不想命名任何文件时applicationContext.xml,为什么要查找它?因为它已经明确说明web.xml..
我是Rails的新手.我们正在使用rails 3.我想知道如何为Rails应用程序设置可配置的会话超时值.
PriorityQueue<Integer> queue = new PriorityQueue<Integer>(4);
queue.add(8);
queue.add(5);
queue.add(23);
queue.add(6);
System.out.println(queue);
Run Code Online (Sandbox Code Playgroud)
朋友们,上面的代码在Ubuntu 12.10和Oracle Java 1.6和Java 1.7上,它打印输出为
[5, 6, 23, 8]
Run Code Online (Sandbox Code Playgroud)
我认为这是错误的.这应该打印出来,因为[5, 6, 8, 23]
这是一个缺陷吗?或者我对优先级队列的理解是错误的?
除此之外,如果我在之前或之后更改向PriorityQueue添加23的位置,这将按预期工作.
我有一个用JavaScript编写的方法让我们说'callme',我在块$(document.ready)中编写了一些jQuery代码.
我的问题是如何从jQuery块中调用现有的JavaScript方法'callme'.
假设列表如下,
function callme(){
// do some complex processing. I don't want to do this in jQuery
}
$(document).ready(function(){
// I need to call callme function from here.
});
Run Code Online (Sandbox Code Playgroud)
请帮帮我.
java ×3
spring ×2
call ×1
hibernate ×1
javascript ×1
jquery ×1
ruby ×1
session ×1
transactions ×1
unit-testing ×1