我正在尝试为我的存储库/服务类编写一个非常基本的测试,但由于我似乎无法弄清楚的原因,我的 Autowiring 存储库始终为空。
这是 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。测试保存一条规则? IllegalState 无法加载 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);
}
}
最佳答案
为了测试存储库,您应该有注释:
@DataJpaTest
@RunWith(SpringRunner.class)
@SpringBootTest(classes=MyApplication.class)
关于java - junit 测试中 JPA 存储库为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53730477/