junit 测试中 JPA 存储库为空

j-m*_*ney 5 java spring-data-jpa spring-boot

我正在尝试为我的存储库/服务类编写一个非常基本的测试,但由于我似乎无法弄清楚的原因,我的自动装配存储库始终为空。

这是 Repo 类

public interface RuleRepository extends JpaRepository<Rule, UUID> {   
    public Optional<Rule> findByName(String name);
}
Run Code Online (Sandbox Code Playgroud)

还有测试

@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);
          }
    }
}
Run Code Online (Sandbox Code Playgroud)

有人有什么想法吗?考试总能通过...

编辑:我不确定这是否是一个值得发表新帖子的错误,但使用注释运行@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);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 1

我注意到您缺少这个注释 @RunWith(SpringRunner.class)