問題
@Test
@Sql({"/data.sql"})
void 検索テスト() {
TestData result = service.find();
assertThat(result.getData()).isEqualTo("テスト");
}
data.sqlで入れたデータを検索してassertするとき、
JUnitで実行の場合は成功するがGradleで実行した場合は文字化けが発生する。
状況
データベースに格納されたデータ自体が文字化けしている。
org.opentest4j.AssertionFailedError:
expected: "テスト"
but was : "繝�繧ケ繝�"
原因
@Sql
でデータ投入するとき文字化けしている。
結論
build.gradleにこの設定を追加する。
利用するファイルのエンコードをしてくれる模様。
build.gradle
tasks.withType(Test) {
systemProperty "file.encoding", "UTF-8"
}