我遵循了单元测试示例,但无法运行测试,我不知道为什么它不起作用。我有以下错误:Cannot find module 'src/Application/Auth/Command/LoginCommandHandler' from 'LoginCommandHandler.spec.ts'但我的处理程序已正确导入。谢谢你的帮助。
这是我的单元测试:
import { LoginCommandHandler } from 'src/Application/Auth/Command/LoginCommandHandler';
import { UserRepository } from 'src/Infrastructure/User/Repository/UserRepository';
import { EncryptionAdapter } from 'src/Infrastructure/Adapter/EncryptionAdapter';
// ...
const module: TestingModule = await Test.createTestingModule({
providers: [LoginCommandHandler, UserRepository, EncryptionAdapter],
}).compile();
userRepository = module.get(UserRepository);
encryptionAdapter = module.get(EncryptionAdapter);
handler = new LoginCommandHandler(userRepository, encryptionAdapter);
Run Code Online (Sandbox Code Playgroud)
这是我的 src/Application/Auth/Command/LoginCommandHandler/LoginCommandHandler :
export class LoginCommandHandler {
constructor(
@Inject('IUserRepository')
private readonly userRepository: IUserRepository,
@Inject('IEncryptionAdapter')
private readonly encryptionAdapter: IEncryptionAdapter,
) {}
// ...
Run Code Online (Sandbox Code Playgroud)
这是我的 AuthModule :
@Module({
imports: [
// …Run Code Online (Sandbox Code Playgroud) 尝试在 CreateUserAction.ts 中使用 ICommandBusAdapter.ts,但出现以下错误:
[ExceptionHandler] Nest can't resolve dependencies of the ICommandBusAdapter (?). Please make sure that the argument at index [0] is available in the AdapterModule context
我创建了一个AdapterModule将所有提供程序共享给其他模块的模块,但它似乎不起作用。
任何想法 ?
AppModule.ts
import { UserModule } from './User/UserModule';
import { AdapterModule } from './Common/AdapterModule';
@Module({
imports: [AdapterModule, UserModule, // ...],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
适配器模块.ts
import { CommandBusAdapter } from 'src/Infrastructure/Adapter/Bus/CommandBusAdapter';
const providers = [
{ provide: 'ICommandBusAdapter', useClass: CommandBusAdapter },
// ...
];
@Module({
providers: [...providers], …Run Code Online (Sandbox Code Playgroud) nestjs ×2