问题
我目前正在尝试使用Hamcrest Matchers断言返回的列表类型是特定类型.例如,假设我的服务调用返回了以下列表:
List<SomePOJO> myList;
Run Code Online (Sandbox Code Playgroud)
我想声明返回的列表是参数化的类型SomePOJO而不是TheOtherPOJO.但是,似乎Hamcrest Matchers没有这种功能.
我曾经尝试过什么
经过一番研究,我看到了以下几种选择:
hasItem(isA(SomePJO.class)),但是这只有在列表中有元素时才有效,而如果列表为空则不行.is(instanceOf(List.class)),但是这只会声明返回的项目是List; 它没有断言返回什么类型的列表.assertThat(somePojo.get(0), is(instanceOf(SomePOJO.class))),但这不是很干净.它也与第1点非常相似.结论/问题
使用Hamcrest Matchers,有没有办法断言空列表是否是某种类型的参数化(例如assertThat(myList, is(aListOf(SomePOJO.class))))?
我目前正致力于将我们的一个Maven项目转换为使用Gradle.这是我目前面临的问题:
该项目使用SQL Integrated安全性.以下是Maven如何处理它(这需要我们一段时间来解决它):
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/sqljdbc4.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
运行后,gradle init --type pom
这个特定的dependency转换为这样的东西:
system group: 'com.microsoft.jdbcdriver', name: 'sqljdbc', version:'4.0.1'
Run Code Online (Sandbox Code Playgroud)
这是不对的.Gradle无法建立.更具体地说,system范围甚至不存在于Gradle的API中(我都没有在任何第三方Gradle插件中找到它).
任何有Gradle SQL集成安全性经验的人都会非常感激.