前提・実現したいこと
Javaでデータを取得してくる処理を実装し、動作確認までできました。
ただ、そのテストコードが実現できず困っています。
やり方としては、@Datasetで取得するデータを予め入れておき、
テストでそのデータを取得しようと考えています。
発生している問題
テストコード上のmapperでの検索結果がnullになってしまう。
該当のソースコード
import省略 @ExtendWith(SpringExtension.class) @DBRider @TestPropertySource(properties = {※設定しています}) class ShortenUrlServiceTest { private static final String DB_RESOURCE_PATH = "/name/"; @Mock ShortenUrlController shortenUrlController; @Mock NameMapper nameMapper; @InjectMocks MyService target; @BeforeEach void setUp() {MockitoAnnotations.initMocks(this);} @Test @DataSet(DB_RESOURCE_PATH) void getRedirectUrl() { String name = "daniel"; NameMapper nameMapper; String actual = target.getRedirectUrl("id"); assertThat(actual, is(name)); } }
※インポートデータはymlでresoruceに配置しており、定数でパスを指定しています
※動作確認はできているので、mapperが間違っているなどはなく、正しいテストコードがかけていない状態です。
試したこと
デバッグで、データが設定したデータがinsertされていることは確認できています。
実行結果のactualがnullになってしまっているため、
補足情報(FW/ツールのバージョンなど)
Java1.8
spring boot 2.2.5
junit 5
DB mysql 5.7
あなたの回答
tips
プレビュー