Spring test
Spring test
- musíme sestavit spring kontext
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = {TestConfig.class},
loader = AnnotationConfigContextLoader.class)
@ActiveProfiles("test")
public abstract class AbstractTest {
}
@Configuration
@ComponentScan("com.cleverlance.academia.spring.test")
public class TestConfig {
}
Spring test
- testované objekty nevytváříme ale injectujeme
public class CustomerRepositoryTest extends AbstractTest {
@Autowired
private CustomerRepository customerRepository;
@Test
public void findById_shouldReturnCorrectCustomer() {
customerRepository.fin....
}
}
Spring test
- pokud máme knihovnu mockito můžeme využívat i mockování
public class CustomerServiceTest extends AbstractTest {
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
@InjectMocks
@Autowired
private CustomerService customerService;
@Mock
private CustomerRepository customerRepository;
Spring test
- přes spring profil můžeme vytvořit beany specifické pro testy (např. připojení do DB)
@Configuration
@ComponentScan("com.cleverlance.academia.spring.test")
public class TestConfig {
@Bean
@Profile("test")
public Database database() {
return new DatabaseTest();
}
}
@Configuration
@ComponentScan("com.cleverlance.academia.spring.test")
public class AppConfig {
@Bean
@Profile("!test")
public Database database() {
return new DatabaseImpl();
}
}
Spring test
By Jiří Čížek
Spring test
- 300