相关疑难解决方法(0)

如何配置JPA以在Maven中进行测试

有没有办法在Maven项目中设置第二个persistence.xml文件,以便用于测试而不是用于部署的普通文件?

我尝试将一个persistence.xml放入src/test/resources/META-INF,它被复制到target/test-classes/META-INF中,但似乎是target/classes/META-INF(来自src/main的副本)尽管mvn -X test以正确的顺序列出了类路径条目,但首选资源是首选的:

[DEBUG] Test Classpath :
[DEBUG]   /home/uqpbecke/dev/NetBeansProjects/UserManager/target/test-classes
[DEBUG]   /home/uqpbecke/dev/NetBeansProjects/UserManager/target/classes
[DEBUG]   /home/uqpbecke/.m2/repository/junit/junit/4.5/junit-4.5.jar
...
Run Code Online (Sandbox Code Playgroud)

我希望能够针对简单的hsqldb配置运行测试,而无需更改JPA配置的部署版本,理想情况是在项目结账后直接进行,无需进行本地调整.

java testing integration-testing maven-2 jpa

67
推荐指数
7
解决办法
5万
查看次数

Mockito:如何匹配 String 和 List<String> 参数

我基本上是在尝试验证是否在方法中调用了正确的参数。

这是我尝试测试的代码片段:

Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.in("type", Arrays.asList("employee", "supervisor");
Run Code Online (Sandbox Code Playgroud)

使用以下方法验证:

Mockito.verify(mockSession).createCriteria(User.class);
Mockito.verify(mockCriteria).add(Restrictions.in("type", Arrays.asList("employee", "supervisor"));
Run Code Online (Sandbox Code Playgroud)

第一个验证语句有效。第二个不是,因为我相信 JVM 检测到两个不同的List对象进行比较。但是,当我将第二个验证语句更改为:

Mockito.verify(mockCriteria).add(Restrictions.in("type", Mockito.anyList());
Run Code Online (Sandbox Code Playgroud)

它就像一个魅力。但是,我确实想确保员工和主管这两个字符串在内部,List并且使用Mockito.anyList().

我如何让这个工作?

编辑:请注意,我不想只验证列表是否已通过。我想确保在该列表中传递正确的字符串

java unit-testing mockito

5
推荐指数
1
解决办法
8304
查看次数