我是Spring Boot的新手,是我的第一个实体。我该如何测试存储库? 我正在使用本地MySQL数据库。那么第一步是嘲笑数据库吗?
main2.cc
这是我的群集实体
labels: {
items: [{
useHTML: true, // Using HTML for label
//html: "Transactions",
html: '<img src="https://github.com/tobi-ajala/shell-exercise/blob/master/icons/card.png?raw=true"/>' + "Transactions", // Doesn't work!
style: {
fontFamily: 'Arial,Roboto,Helvetica,sans-serif',
fontWeight: 'bold',
fontSize: 14,
verticalAlign: 'middle',
top: 140,
left: 460
}
}]
},
我的存储库只是扩展了JpaRepository。
我得到的错误是java.lang.IllegalStateException:无法加载ApplicationContext。而且有点失落:无法用嵌入式数据库替换DataSource进行测试。如果你想要一个嵌入式数据库,请在类路径上放置一个受支持的数据库,或者调整@AutoconfigureTestDatabase的replace属性。
这是我的src / main / resources / application.properties中的application.properties文件:
@RunWith(SpringRunner.class)
@DataJpaTest
public class ClusterTest {
@Autowired
private TestEntityManager testEntityManager;
@Autowired
private ClusterRepository clusterRepository;
@Test
public void testExample() throws Exception{
this.testEntityManager.persist(new Cluster("Project", "System"));
Cluster cluster = this.clusterRepository.findOne(1);
assertThat(testcluster.getProject()).isEqualTo("System");
}
}
我将此文件复制到我的src / test / resources / application.properties
错误
@Entity
@Table(name = "Cluster")
public class Cluster {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String project;
public Cluster(){
}
public Cluster(String project) {
this.project = project;
}
答案 0 :(得分:2)
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = NONE)
public class ClusterTests {
@Autowired
private TestEntityManager entityManager;
@Autowired
private ClusterRepository clusterRepository;
}
这应该可以解决内存数据库的生成问题。最好的方法是使用内存数据库来保存实体,但另一个好方法是直接使用数据库。通过使用@AutoConfigureTestDatabase(replace = NONE),您可以告诉spring不要替换数据源。
希望有所帮助