gpt4 book ai didi

java - junit 测试中 JPA 存储库为空

转载 作者:行者123 更新时间:2023-11-30 01:58:01 25 4
gpt4 key购买 nike

我正在尝试为我的存储库/服务类编写一个非常基本的测试,但由于我似乎无法弄清楚的原因,我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com