[英]DTO entity tests using Json Test do not pass
我正在尝试使用 @JsonTest 注释测试我的 DTO 类,但测试失败并出现错误说明:
一个组件需要一个名为“entityManagerFactory”的 bean,但无法找到。 上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名称为 'itemRepository' 的 bean 时在 ru.practicum.shareit.item.Repository.ItemRepository 中定义的 @EnableJpaRepositories 中定义
实体不包含复杂的对象和与数据库的交互
package ru.practicum.shareit.user;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.json.JsonTest;
import org.springframework.boot.test.json.JacksonTester;
import org.springframework.boot.test.json.JsonContent;
import ru.practicum.shareit.item.Repository.ItemRepository;
import ru.practicum.shareit.user.dto.UserDto;
import ru.practicum.shareit.user.userStorage.UserRepository;
import static org.assertj.core.api.Assertions.assertThat;
@JsonTest
@ExtendWith(MockitoExtension.class)
public class UserDtoTest {
@Autowired
private JacksonTester<UserDto> json;
@Test
public void testUserDto() throws Exception {
UserDto userDto = new UserDto(
1l,
"name",
"email@ya.ru"
);
JsonContent<UserDto> result = json.write(userDto);
assertThat(result).extractingJsonPathNumberValue("$.id").isEqualTo(1);
assertThat(result).extractingJsonPathStringValue("$.name").isEqualTo("name");
assertThat(result).extractingJsonPathStringValue("$.email").isEqualTo("email@ya.ru");
}
}
本文暂无回复,试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.