比较两个 Unicode 字符串时 AssertJ 错误失败

AssertJ wrong failure when comparing two Unicode strings

我从 TestNG 断言切换到 Assertj,我真的很喜欢我获得的巨大灵活性。但是,当 运行 一些 Selenium 测试时,我现在遇到了一堆失败。我正在检查一些页面标题和一些锚文本,如下所示:

assertThat(page.getTitle()).isEqualTo("This® is one annoying title");

这对特殊字符总是失败。更奇怪的是,当 运行 测试在 Eclipse 中作为 jUnit 测试时它不会失败,但是当 运行 使用 gradle 从命令行在 Windows 中进行测试时它总是失败. 我错过了什么吗?

糟糕,看来 gradle 需要在需要时为 UTF-8 配置。这是修复,在 build.gradle 文件中:

apply plugin: 'java'
compileJava.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}