我试图为我的存储库/服务类编写一个非常基本的测试,但是由于我似乎无法理解的原因,我的autowired存储库总是空的。
下面是Repo类
public interface RuleRepository extends JpaRepository<Rule, UUID> {
public Optional<Rule> findByName(String name);
}
而测试
@DataJpaTest
@ContextConfiguration(classes = MyApplication.class)
public class RulesTest {
@Autowired
private RuleRepository ruleRepository;
@Test
public void testSaveOneRule() {
if (ruleRepository == null) {
System.err.println("HERE");
assertTrue(true);
} else {
assertTrue(false);
}
}
}
有人有什么想法吗?测试总是通过...
编辑:我不确定这个错误是否值得写一篇新文章,但是使用注解@RunWith(SpringRunner.class)
运行会产生错误RulesTest.testSaveOneRule ? IllegalState Failed to load ApplicationContext...
MyApplication.class的内容
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
4条答案
按热度按时间j2cgzkjk1#
对于测试存储库,您应该具有以下注解:
ilmyapht2#
如果您正在使用JPA,请在类Test@DataJpaTest.ex.中添加:
dwthyt8l3#
我注意到您遗漏了这个注解@RunWith(SpringRunner.class)
lrl1mhuk4#
我的解决方案(也能够加载应用程序上下文)是使用以下注解: