前提・実現したいこと
1枚目のようにしたいのですが
src/test
/java
/resources
このtestを分けて上のようにしたいです
エラー文
: Rolled back transaction for test: [DefaultTestContext@2bb7bd00 testClass = UserDaoTest, testInstance = com.example.demo.UserDaoTest@5358c8fa, testMethod = countTest2@UserDaoTest, testException = org.springframework.jdbc.datasource.init.CannotReadScriptException: Cannot read SQL script from class path resource [src/test/resources/testdata.sql]; nested exception is java.io.FileNotFoundException: class path resource [src/test/resources/testdata.sql] cannot be opened because it does not exist, mergedContextConfiguration = [WebMergedContextConfiguration@5f031ebd testClass = UserDaoTest, locations = '{}', classes = '{class com.example.demo.SpringSampleApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.t
ソースコード
package com.example.demo; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import com.example.demo.Repository.UserDao; //JUnit Javaプログラムの単体テストを行うためのツール //テスト用のアノテーション @RunWith(SpringRunner.class)//テストをどのクラスで実行するか指定(spring用のJUnitを使えるクラス) @SpringBootTest//springbootを起動してからテスト開始 @Transactional//トランザクションの開始、コミット、ロールバックは自動 public class UserDaoTest { @Autowired @Qualifier("UserDaoJdbcImpl") UserDao dao; //カウントメソッドのテスト1 @Test public void countTest1() { //カウントメソッドの結果が2件であることをテスト assertEquals(dao.count(),2); } @Test @Sql(scripts="classpath:src/test/resources/testdata.sql")//SQLを実行した後の状態でテスト public void countTest2() { //カウントメソッドの結果が3件であることをテスト assertEquals(dao.count(),3); } }
試したこと
ビルドパスの構成でやってみたんですがいまいちわかりませんでした
@Sql("testdata.sql")
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー