我无法使用Mockito 2模拟Kotlin决赛课.我还在使用Robolectric.
这是我的测试代码:
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21)
public class Test {
// more mocks
@Mock
MyKotlinLoader kotlinLoader;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
}
Run Code Online (Sandbox Code Playgroud)
当我们尝试初始化setUp()方法中的模拟时,测试失败.
另外,我在我的代码中使用以下gradle依赖项:
testCompile 'org.robolectric:robolectric:3.3.2'
testCompile 'org.robolectric:shadows-multidex:3.3.2'
testCompile 'org.robolectric:shadows-support-v4:3.3.2'
testCompile("org.powermock:powermock-api-mockito2:1.7.0") {
exclude module: 'hamcrest-core'
exclude module: 'objenesis'
}
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-inline:2.8.9'
Run Code Online (Sandbox Code Playgroud)
所有其他单元测试都使用此配置传递,但是一旦我尝试模拟Kotlin类,它就会抛出以下错误:
Mockito cannot mock/spy because :
- final class
请注意我使用的是Mockito版本2,我正在使用inline依赖项,它可以自动启用模拟最终类的功能.
我不明白使用RxJava时花括号和Kotlin中的普通括号之间的真正区别.例如,我有以下代码按预期工作:
someMethodThatReturnsCompletable()
.andThen(anotherMethodThatReturnsACompletable())
.subscribe(...)
Run Code Online (Sandbox Code Playgroud)
但以下不起作用:
someMethodThatReturnsCompletable()
.andThen { anotherMethodThatReturnsACompletable() }
.subscribe(...)
Run Code Online (Sandbox Code Playgroud)
注意andThen()链条部分与花括号的区别.我无法理解两者之间的区别是什么.我看过一些文章,但不幸的是我仍然难以理解这种微妙的差异.
我在Spring MVC Form bean中使用以下属性javax.validation.constraints来验证表单bean,如下所示:
public class MyForm {
@Size(min = 2, max = 50)
private String postcode;
// getter and setter for postcode.
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:@Size(min = 2)属性是不是null因为它总是需要长度大于2的意思.我之所以说这是因为@NotNull在同一个包中存在约束,因此@NotNull如果我应该这样做会使约束变得多余在上面的bean中使用它.
我一直在阅读Effective Java,我遇到了无界的Collection类型<?>.然而,阅读让我相信你不能把除了之外的任何元素null放入一个实例中Collection<?>.
所以,我的问题是:Collection<?>当我们只能插入null元素时,实例化的目的是什么,因为它似乎毫无意义.我一直试图找出这个概念,但它似乎没有多大意义.任何帮助将非常感激.
我试图让JSTL <c:forEach>标记工作,以便它将打印一个名称列表,如下所示:
Best, Milo, Kane
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
<c:forEach items="${persons}" var="person">
${person.name},
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
但是,在最后一个人/名称上,最后插入一个逗号,例如
Best, Milo, Kane,
Run Code Online (Sandbox Code Playgroud)
如何避免循环中的最后一个逗号?
目前,我的故事板中有两个段落.但是,我需要删除Storyboard中的一个segue.有没有办法通过XCode故事板来做到这一点?
我想知道是否有一个行业标准可以更好地保护移动设备上的ajax呼叫.
我的移动应用程序由我的网站的html,js和css文件组成 - 但是在移动设备上本地安装它们以提高性能.移动设备的本地index.html然后调用我的Web服务器获取数据(在本例中为Tomcat).
我发现这个工作的唯一方法是在我的servlet中启用CORS:
response.setContentType("text/html");
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, PUT, POST, OPTIONS, DELETE");
response.addHeader("Access-Control-Allow-Headers", "Content-Type");
response.addHeader("Access-Control-Max-Age", "86400");
Run Code Online (Sandbox Code Playgroud)
但老实说,我出于各种原因不喜欢它,但主要是 - 现在任何东西都可以从任何领域查询我的网络服务器并获得回复......
如何从使用CORS的移动设备实现对我的网络服务器的相同ajax调用 - 但是以更安全的方式,以便只允许我的应用程序访问?
**或者**在这种移动设备的情况下,CORS是否完全错误,并且有更标准/更理想的解决方案?
任何人都可以知道何时使用Set以及何时在hibernate映射文件中使用List?
<set name="" table="">
<key>
<column name="" />
</key>
</set>
<list name="" cascade="all">
<key column="" />
<index column="" />
<one-to-many class=""/>
</list>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在尝试将我的github Java/PHP项目与travis-ci环境集成.这是我的travis配置:
language: java
jdk:
- openjdk7
- oraclejdk7
script: mvn test
Run Code Online (Sandbox Code Playgroud)
以下是travis打印的输出:
Using worker: bluebox-linux-1.worker.travis-ci.org:travis-linux-9
$ git clone --depth=50 --branch=master git://github.com/tkoomzaaskz/wealthy-laughing-duck.git tkoomzaaskz/wealthy-laughing-duck
Cloning into 'tkoomzaaskz/wealthy-laughing-duck'...
remote: Counting objects: 458, done.
remote: Compressing objects: 100% (263/263), done.
remote: Total 458 (delta 156), reused 390 (delta 96)
Receiving objects: 100% (458/458), 458.40 KiB, done.
Resolving deltas: 100% (156/156), done.
$ cd tkoomzaaskz/wealthy-laughing-duck
$ git checkout -qf 47d1ef528f19ad6d01288ac9a3d4c550a79b14f4
$ jdk_switcher use openjdk7
Switching to OpenJDK7 (java-1.7.0-openjdk-amd64), JAVA_HOME will …Run Code Online (Sandbox Code Playgroud) 我GameCycle在db中有一个表,其中包含一个date类型的列number.此列中的值是8位数字,表示反日期,如' 20130301'.映射到此表上我有一个类GameCycle,其中包含受保护的字段iDate类型java.util.Date.该字段@Type(type = "inverseDate")使用自定义类型映射进行注释.该课程Gamecycle注释为' @TypeDef(name = "inverseDate", typeClass = InverseDateType.class)'
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
@Entity
@TypeDef(name = "inverseDate", typeClass = InverseDateType.class)
@Table(name = "GAMECYCLE")
public class GameCycle implements Comparable<GameCycle>, Serializable
{
@Type(type = "inverseDate")
@Column(name = "GC_DATE", nullable = false)
protected Date iDate = null;
...
Run Code Online (Sandbox Code Playgroud)
显然,导入将我绑定到使用hibernate作为jpa实现,所以我的问题是:
有没有办法摆脱hibernate注释并使用纯javax.persistence解决方案进行相同的自定义类型映射?
java ×7
android ×2
hibernate ×2
kotlin ×2
ajax ×1
annotations ×1
cors ×1
generics ×1
ios ×1
jpa ×1
jsp ×1
jstl ×1
list ×1
maven ×1
mockito ×1
rx-java2 ×1
security ×1
set ×1
spring-mvc ×1
travis-ci ×1
unit-testing ×1
validation ×1
web-services ×1
xcode ×1