gpt4 book ai didi

javascript - NestJs - 如何对 DTO 进行单元测试?

转载 作者:行者123 更新时间:2023-12-05 00:27:17 34 4
gpt4 key购买 nike

我在向你寻求帮助。我创建了一个看起来像它的 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/如果我的产品描述是一个字符串,应该创建一个字符串,如果不是,抛出我的异常
...
等等。

那么,我可以制作一个 spec.ts 文件来测试它吗?如果是,如何?
如果不是,最好在 service.spec.ts 中测试它吗?如果是这样,怎么做?

非常感谢,任何帮助都会非常有帮助:)

最佳答案

可以创建 OfImportDTO.spec.ts文件(或任何你的原始文件被调用),但问题是,这里没有任何逻辑可以测试。您可以做的最接近的事情是创建 Validator 的实例。来自 class-validator然后实例化 OfImportDto 的实例然后检查该类是否通过验证。如果您向其添加逻辑(例如具有特定功能的 getter 和 setter),那么它可能对单元测试有意义,但除此之外,这基本上是一个被称为类的接口(interface),因此它在运行时存在 class-validator

关于javascript - NestJs - 如何对 DTO 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60852170/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com