Node.js 无法监视基元值;nestJS中未定义
我知道以前有人问过这个问题,但当我运行服务测试函数时,nestjs中出现了这个错误 这是我的服务代码 user.service.tsNode.js 无法监视基元值;nestJS中未定义,node.js,unit-testing,jestjs,nestjs,spyon,Node.js,Unit Testing,Jestjs,Nestjs,Spyon,我知道以前有人问过这个问题,但当我运行服务测试函数时,nestjs中出现了这个错误 这是我的服务代码 user.service.ts import { Injectable,HttpException, HttpCode, HttpStatus } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Us
import { Injectable,HttpException, HttpCode, HttpStatus } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
import { UserRegisterAC } from '../application/userRegisterAC';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private readonly userRepository: Repository<User>) {}
async allUsersList(): Promise<User[]> {
var users = this.userRepository.find();
if(users==null){
throw new HttpException("Users not found",HttpStatus.NOT_FOUND)
}else{
return users as unknown as User[];
}
}
async create(userDTO: UserRegisterAC): Promise<User> {
const user = new User();
user.name = userDTO.name;
user.phoneNo = userDTO.phoneNo;
return this.userRepository.save(user);
}
}
这是我的笑话
{
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": ".",
"testEnvironment": "node",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"automock": true
}
我什么都试过了请给我一些建议这里有几点我注意到了
未定义的
,而不是一个类
beforeach(异步()=>{
const modRef=wait Test.createTestingModle({
供应商:[
用户服务,
{
提供:getRepositoryToken(用户),
useClass:存储库,
}
]
}).compile();
service=modRef.get(UserService);
repository=modRef.get(getREpositoryToken(用户));
});
现在,您可以在仍然使用服务测试覆盖率的同时模拟存储库方法
有一个和。请随意看一看,再深入一点。您的
allUsersList
将在服务的原型下结束,请尝试
jest.spyOn(service.prototype,'allUsersList').mockImplementation(() => result);
{
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": ".",
"testEnvironment": "node",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"automock": true
}
jest.spyOn(service.prototype,'allUsersList').mockImplementation(() => result);