小编apf*_*ger的帖子

如何使用 Mockito 模拟记录

我正在尝试模拟唱片班

    @Test
    public void testRecord() {
        record Rec(){}
        Mockito.mock(Rec.class);
    }
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

    org.mockito.exceptions.base.MockitoException:
    Cannot mock/spy class Rec
    Mockito cannot mock/spy because :
     - final class
        at ...
Run Code Online (Sandbox Code Playgroud)

这当然是有道理的。

java mocking mockito

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

如何在 gradle 测试中启用有用的 NullPointerExceptions

此问题已在 Gradle 6.6 中修复

原帖

我想在测试中放置标志-XX:+ShowCodeDetailsInExceptionMessages以启用有用的 NPE ( https://openjdk.java.net/jeps/358 )

我试过

tasks.withType<Test> {
    jvmArgs("-XX:+ShowCodeDetailsInExceptionMessages")
    testLogging {
        setExceptionFormat("full") // Prints the message of the exception
    }
}
Run Code Online (Sandbox Code Playgroud)

但是 NPE 仍然没有消息。

这是我的java版本

java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7)
OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

使用更多研究进行编辑

为了更准确地找出问题的根源,我做了更多的工作。我的结论是它不是来自我的 java 也不是测试框架,它只能是 gradle 的错误配置或错误。这是我所做的:

我已经用这个 build.gradle.kts 设置了一个空的 gradle 项目

plugins {
    java
}
repositories {
    mavenCentral()
}
dependencies {
    testImplementation("junit:junit:4.13")
}
tasks.withType<Test> {
    jvmArgs("-XX:+ShowCodeDetailsInExceptionMessages") // Helpful …
Run Code Online (Sandbox Code Playgroud)

java gradle gradle-kotlin-dsl java-14

7
推荐指数
1
解决办法
468
查看次数

如何在 Play 测试中从基于 InputStream 的结果中获取内容

我在 Play 2.6,使用 Java

我的控制器返回:

public Result xml() {
    return Results.ok(new ByteArrayInputStream("<someXml />".getBytes()));
}
Run Code Online (Sandbox Code Playgroud)

我想在测试中解析结果:

Result result = new MyController().xml();    
play.test.Helpers.contentAsString(result)
Run Code Online (Sandbox Code Playgroud)

这抛出

failed: java.lang.UnsupportedOperationException: Tried to extract body from a non strict HTTP entity without a materializer, use the version of this method that accepts a materializer instead
Run Code Online (Sandbox Code Playgroud)

如何在测试中检索从输入流发出的结果的内容?

java akka playframework akka-stream playframework-2.6

4
推荐指数
1
解决办法
617
查看次数