アプリケーションのパフォーマンスに問題があるように思われるので、アプリケーションにいくつかのテストを書き始めました。
このテストだけでも最大10.842秒かかります。(冗談の出力による)
ネストCLIに付属する標準テストがスムーズに実行されたため、モックリポジトリを挿入することで何かが発生したようです。しかし、リポジトリ全体をモックしたので、DB接続に関連する待ち時間はないはずなので、混乱します。
import { ApplicationService } from '../application.service';
import { ApplicationRepository } from '../application.repository';
import { Test } from '@nestjs/testing';
import { ApplicationController } from '../application.controller';
import { ApplicationDTO } from '../DTO/applicationDTO';
describe('ApplicationService', () => {
let service: ApplicationService;
let mockRepo;
beforeEach(async () => {
mockRepo = {
applications: [
{id: 1, type: 'DATABASE', name: 'WhatsApp', access: 'ACCESS', user_access: 'HIGH', group: 'Nice', connection: 'aaaaaaaaaaaaaaa'},
{id: 2, type: 'DATABASE', name: 'Telegram', access: 'ACCESS', user_access: 'LOW', group: 'Badguy', connection: 'aaaaaaaaaaaaaaa'},
],
find() {
return this.applications;
},
create(application) {
this.applications.push(application);
return { save() {
return;
}};
},
delete(id) {
this.applications = this.applications.splice(0, id);
},
};
const mockRepositoryProvider = {
provide: ApplicationRepository,
useValue: mockRepo,
};
const module = await Test.createTestingModule({
controllers: [ApplicationController],
providers: [ApplicationService, mockRepositoryProvider],
}).compile();
service = module.get<ApplicationService>(ApplicationService);
});
it('should be defined', () => {
expect(service).toBeDefined();
});
it('should return all applications', () => {
expect(service.findAll()).toBe(mockRepo.applications);
});
it('should add a application', () => {
const application = new ApplicationDTO(
{ id: 4, type: 'DATABASE', name: 'WhatsApp', access: 'ACCESS', user_access: 'ACCESS', group: 'Nice', connection: 'aaaaaaaaaaaaaaa'},
);
service.add(application);
expect(service.findAll()).toContainEqual(
expect.objectContaining(
{ id: 4, type: 'DATABASE', name: 'WhatsApp', access: 'ACCESS', user_access: 'ACCESS', group: 'Nice', connection: 'aaaaaaaaaaaaaaa'},
));
});
});
大丈夫だと思います。Nestアプリの起動には約10秒かかります。テストを追加しても、時間は大幅に増加しません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加