[英]How to create fake object from a data type in Typescript for testing
我正在尋找一種方法來簡化在 Angular 解決方案中為單元測試制作假數據。 我正在使用如下接口:
export interface ReferenceDataItemCommon {
codeDescription?: string;
code: string;
deleted?: boolean;
}
作為應用程序中的數據類型。 目前使用 Factory.ts + Faker 為測試目的創建假對象:
export const fakeReferenceDataItemCommon = Factory.Sync.makeFactory<ReferenceDataItemCommon>({
code: Factory.each(() => Faker.lorem.word()),
codeDescription: Factory.each(() => Faker.lorem.sentence(4)),
});
但是我很好奇是否有一種方法可以進一步簡化它,因為您只需要一個 object 來進行測試並更快地創建它。 Typescript 中是否有可能有一個通用方法返回該數據類型的 object?
const fake = createFake<ReferenceDataItemCommon>();
我最初的想法是做類似的事情:
Object.keys(object).forEach(key => {
switch(typeof object[key]) {
case 'string':
object[key] = Faker.lorem.word();
break;
}
}
return object;
對於復雜的 object 遞歸調用此方法。 這有可能嗎,如果我覺得有點超出我的深度,那么有什么更好的方法來做到這一點?
當您使用 cli 創建工廠時,而不是在運行時,它是可能的:
我也在尋找類似的東西,但也沒有找到。 因此,我創建了這個庫https://www.npmjs.com/package/class-validator-mocker ,它適用於使用類驗證器裝飾器注釋的類。 如果您可以使用數據類而不是接口來定義某些類型,我認為值得一看。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.