小编bla*_*her的帖子

不能使用Mockito 2模拟最终的Kotlin课程

我无法使用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依赖项,它可以自动启用模拟最终类的功能.

java android unit-testing mockito kotlin

15
推荐指数
3
解决办法
4737
查看次数

RxJava与Kotlin的花括号和普通括号之间有什么区别

我不明白使用RxJava时花括号和Kotlin中的普通括号之间的真正区别.例如,我有以下代码按预期工作:

someMethodThatReturnsCompletable()
    .andThen(anotherMethodThatReturnsACompletable())
    .subscribe(...)
Run Code Online (Sandbox Code Playgroud)

但以下不起作用:

someMethodThatReturnsCompletable()
    .andThen { anotherMethodThatReturnsACompletable() }
    .subscribe(...)
Run Code Online (Sandbox Code Playgroud)

注意andThen()链条部分与花括号的区别.我无法理解两者之间的区别是什么.我看过一些文章,但不幸的是我仍然难以理解这种微妙的差异.

android kotlin rx-java2

14
推荐指数
3
解决办法
920
查看次数

以下验证是否表示该字段不能为空?(@Size注释)

我在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中使用它.

java validation spring-mvc

13
推荐指数
1
解决办法
9233
查看次数

Collection <?>有什么意义

我一直在阅读Effective Java,我遇到了无界的Collection类型<?>.然而,阅读让我相信你不能把除了之外的任何元素null放入一个实例中Collection<?>.

所以,我的问题是:Collection<?>当我们只能插入null元素时,实例化的目的是什么,因为它似乎毫无意义.我一直试图找出这个概念,但它似乎没有多大意义.任何帮助将非常感激.

java

13
推荐指数
2
解决办法
610
查看次数

JSP for-each标记中的逗号分隔值

我试图让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)

如何避免循环中的最后一个逗号?

java jsp jstl

13
推荐指数
1
解决办法
1万
查看次数

如何在XCode故事板中删除segue?

目前,我的故事板中有两个段落.但是,我需要删除Storyboard中的一个segue.有没有办法通过XCode故事板来做到这一点?

xcode ios xcode-storyboard uistoryboardsegue

13
推荐指数
1
解决办法
4598
查看次数

移动应用程序避免或保护CORS?

我想知道是否有一个行业标准可以更好地保护移动设备上的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是否完全错误,并且有更标准/更理想的解决方案?

java security ajax web-services cors

13
推荐指数
1
解决办法
1217
查看次数

休眠集或列表

任何人都可以知道何时使用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)

谢谢.

hibernate list set

12
推荐指数
1
解决办法
3万
查看次数

版本1.3中不支持java泛型和注释(travis集成)

我正在尝试将我的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)

java generics annotations maven travis-ci

12
推荐指数
2
解决办法
7464
查看次数

jpa独立自定义类型映射/ javax.persistence.x替代org.hibernate.annotations.Type和org.hibernate.annotations.TypeDef

我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 hibernate jpa

12
推荐指数
2
解决办法
9654
查看次数