首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对Spring存储库进行单元测试

如何对Spring存储库进行单元测试
EN

Stack Overflow用户
提问于 2018-08-10 01:33:02
回答 3查看 3.7K关注 0票数 1

我已经创建了一个springboot项目,分为三个maven模块,域层、核心层(包含持久性和业务逻辑)和web层。我尝试单元测试我的存储库ProductRepository (位于核心层)。

代码语言:javascript
复制
@RunWith(SpringRunner.class) // provide bridge between SpringBoot test features and JUnit, for usage of springboot tsting features
@DataJpaTest
class ProductRepositoryTest {
	@Autowired
	private TestEntityManager em;
	@Autowired
	private ProductRepository repository;
	

	@Test
	void shouldReturnProduct() {
		// given
		Product p = Product.builder().id(1).designation("Test").reference("TEST").unitPrice(150).build();
		this.em.persistAndFlush(p);
		// when
		Product found = repository.findByReference(p.getReference());
		// then
		assertThat(found.getReference()).isEqualTo(p.getReference());
	}

}

但是存储库总是被实例化为null。我在eclipse中以JUnit测试的身份运行这个测试,得到了一个nullpointerexception。

这是我的pom.xml文件

代码语言:javascript
复制
<dependencies>
		<!--<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> 
			</dependency> -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency> 
	</dependencies>

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51772890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档