我想測驗我的nestjs應用程式,但我不太確定要寫什么樣的測驗,我想測驗我的服務,所以為了測驗,我使用nestjs提供的函式createTestingModule,這是我的代碼
beforeAll(async () => {
const moduleRef = await Test.createTestingModule({
提供者。[DeliveryManService],
進口。[
TypeOrmModule.forFeature([UserRepository, DeliveryManRepository])。
PostgresProviderModule,
],
}).compile()。
service = moduleRef.get<DeliveryManService>(DeliveryManService)。
});
但不幸的是,我在看其他人的編碼時,他們沒有直接使用typeorm資源庫,而是使用一個模擬來做這些事情,所以我想......
我的測驗是不是沒用?
我的測驗是不是沒有用?
我是否應該只使用mock而不是typeorm提供者來寫測驗?
我寫的是什么樣的測驗?
EDIT 這些是我的測驗:
it('should be defined', () => {
expect(service).toBeDefined();
});
it('should save and return a new delivery man', async () => {
const deliveryMan = await service.preRegister(preRegister);
expect(deliveryMan).toBeDefined();
expect(deliveryMan.id).toBeDefined()。
});
it('should return an array of delivery man', async () => {
const deliveryMans = await service.findAll({ page: 1, limit: 100 });
expect(deliveryMans).toBeDefined()。
expect(deliveryMans).toBeInstanceOf(Array);
expect(deliveryMans.length).toBeGreaterThanOrEqual(1);
});
uj5u.com熱心網友回復:
如果你有實際與資料庫對話的測驗,你就有一個集成測驗,這就是測驗你的服務類和資料庫之間的集成。通常情況下,你要小心這些測驗的數量,因為它們需要一個資料庫,并且通常會修改該資料庫中的資料,這意味著如果配置不正確,你可能最終會修改錯誤的資料。
單元測驗最終將模擬資料庫如這里的 repo 中所示。這些測驗通常最多只需要幾秒鐘,而集成測驗可能需要更長的時間,因為必須通過電線發送資料來與資料庫建立連接并檢索查詢結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/318659.html
標籤:
