簡體   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");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM