jns*_*nst 7 javascript node.js typescript typeorm nestjs
api.controller.ts
@Controller('api')
export class ApiController {
constructor() {}
@Post()
@Transaction()
async root(@Req() req: Request, @Res() res: Response, @TransactionManager() manager: EntityManager): Promise<void> {
res.send(/* anything */);
}
}
Run Code Online (Sandbox Code Playgroud)
api.e2e-spec.ts
describe('API (e2e)', () => {
let app: INestApplication;
let connection: Connection;
beforeAll(async () => {
const module = await Test.createTestingModule({
imports: [],
controllers: [ApiController],
providers: [],
})
.overrideProvider('Connection')
.useValue(/** How to ??? */)
.compile();
app = module.createNestApplication();
await app.init();
});
});
Run Code Online (Sandbox Code Playgroud)
结果是
[Nest] 35181 - 10/30/2018, 5:42:06 PM [ExceptionHandler]
Connection "default" was not found.
ConnectionNotFoundError: Connection "default" was not found.
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我只想使用模拟测试来检查请求参数和响应值。我想通过覆盖它来禁用数据库连接。
小智 5
假设您有某种模拟连接(例如使用 jest.createMockInstance 参见https://www.npmjs.com/package/jest-create-mock-instance):
api.e2e-spec.ts
describe('API (e2e)', () => {
let app: INestApplication;
let connection: Mocked<Connection>;
beforeAll(async () => {
connection = createMockInstance(Connection);
const module = await Test.createTestingModule({
imports: [],
controllers: [ApiController],
providers: [],
})
.overrideProvider(Connection)
.useValue(connection)
.compile();
app = module.createNestApplication();
await app.init();
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1778 次 |
最近记录: |