私のJUnitテストクラスの1つに依存関係を注入するのに問題があります。 私は、TestApplicationがパッケージスキャンでないか、読み込まれていないと考えています。Junitテストに依存関係を注入できません
以下のコード:
package com.mitto.repositories;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestExecutionListeners;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
import com.github.springtestdbunit.DbUnitTestExecutionListener;
import com.github.springtestdbunit.annotation.DatabaseSetup;
import com.mitto.MittoApplicationTests;
import com.mitto.domain.User;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes= { MittoApplicationTests.class })
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
TransactionalTestExecutionListener.class,
DbUnitTestExecutionListener.class})
@DatabaseSetup("UserRepositoryTest.xml")
public class UserRepositoryTest {
@Autowired
UserRepository repository;
private static final long FACEBOOK_ID = 1234567;
@Test
public void getUserById() {
User user = repository.findOne(1L);
assertNotNull(user);
assertEquals(user.getFacebookId(), FACEBOOK_ID );
}
}
MittoApplicationTests.java
package com.mitto;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class MittoApplicationTests {
@Test
public void contextLoads() {
}
}
UserRepository.java
package com.mitto.repositories;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
import com.mitto.domain.User;
@Repository
public interface UserRepository extends PagingAndSortingRepository<User, Long>{
User findByFacebookId(long facebookId);
User findByAuthToken(String token);
}
私はこれに何かを見ることはできません。
おかげMinjun、これは私の問題を解決し、提供し、より良い私のために理解して助けました。乾杯! – scottazord
@scottazord '@ SpringBootTest'クラスの値を指定すると、ApplicationContextのロードに使用するクラスを指定します。それ以上のことはありません。 –
喜んで助けました。 –