Гнездо Js - Как провести модульное тестирование DTO? - PullRequest
0 голосов
/ 25 марта 2020

Я прошу вас о помощи. Я создал DTO, который выглядит так (это уменьшенная версия):

export class OfImportDto {

    @IsString({
        message: "should be a valid product code"
    })
    productCode: string;

    @IsString({
        message: "Enter the proper product description"
    })
    productDescription: string;

    @IsDateString({
        message: "should be a valid date format, for example : 2017-06-07T14:34:08+04:00"
    })
    manufacturingDate : Date

    @IsInt({
        message: "should be a valid planned quantity number"
    })
    @IsPositive()
    plannedQuantity: number;

Дело в том, что я прошу проверить это с помощью модульного теста, а не теста E2E. И я не знаю, как это сделать. Например, я хотел бы провести модульный тест 1 /, если мой код продукта представляет собой строку, следует создать строку, если нет, сгенерировать мое исключение 2 /, если описание моего продукта представляет собой строку, следует создать строку, если нет, выбросьте мое исключение ... и т. д.

Итак, я могу сделать файл spe c .ts для проверки этого? Если да, то как? Если нет, то лучше ли это проверить в сервисе.spe c .ts? Если да, то как?

Большое спасибо, любая помощь будет очень полезна:)

1 Ответ

0 голосов
/ 25 марта 2020

Можно было бы создать файл OfImportDTO.spec.ts (или как называется ваш исходный файл), но дело в том, что здесь нет логики c для тестирования. Самое близкое, что вы можете сделать, это создать экземпляр Validator из class-validator, а затем создать экземпляр OfImportDto и проверить, что класс проходит проверку. Если вы добавите в него logi c (например, геттеры и сеттеры с указанными c функциями), тогда это может иметь смысл для модульного тестирования, но в остальном это интерфейс, называемый классом, поэтому он существует во время выполнения для * 1005. *

...