angular - Jasmine 测试找不到导入的变量
问题描述
我正在使用 Angular,我设置了以下类:
import { USERS } from "./data/users"; // imports an Array of Objects
export class User {
constructor(name: string) {
const user = USERS.find(e => e.name === name);
}
...
}
当我编译和构建时,这工作正常。该网站按预期运行。但是当我尝试使用 Jasmine 对其进行单元测试时,测试找不到 constUSERS
并抛出错误TypeError: Cannot read property 'find' of undefined
。我的规范文件是这样的:
import { User } from './users.module';
import { USERS } from "./data/users";
describe('UserModule', () => {
let userModule: UserModule;
beforeEach(() => {
userModule = new UserModule();
});
it('should create a user', () => {
const user = new User("Testuser");
expect(user).toBeTruthy();
});
});
为什么类 User 不能像在生产中一样在测试中找到变量 USERS?我可以为班级做些什么来找到那个变量?
解决方案
您发布的规范文件看起来有点不对劲。您正在导入该类User
,但它没有被使用;相反,您正在创建UserModule
. 这可能与它有关。