首页 > 解决方案 > 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?我可以为班级做些什么来找到那个变量?

标签: angulartypescriptunit-testingjasmine

解决方案


您发布的规范文件看起来有点不对劲。您正在导入该类User,但它没有被使用;相反,您正在创建UserModule. 这可能与它有关。


推荐阅读