繁体   English   中英

DTO 实体测试使用 Json 测试不通过

[英]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");
    }
}

本文暂无回复,试试以下方法:

DTO 实体测试使用 Json 测试不通过

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM