首页 > 解决方案 > TypeError (Jest Test) 为什么这个测试会失败?错误说函数不是函数

问题描述

TypeError: (0 , _validators.validateEmail)(...).toBe 不是函数

是错误

这是我的测试

// Utils
import { validateEmail, validatePassord } from './validators';

describe('validating email addresses', () => {
  it('should return true with a valid email', () => {
    expect(validateEmail('test@email.com').toBe(true));
  });

  it('should return false with an invalid email', () => {
    expect(validateEmail('badEmail').toBe(false));
  });
});

它正在测试的实用程序

export const validateEmail = email => /@google.com\s*$/.test(email);

export const validatePassord = (password) => {
  const hasSpecial = /[!]+/.test(password);
  const hasAlpha = /[a-zA-Z]+/.test(password);
  const hasUppercase = /(?=.*[A-Z])+/.test(password);
  const hasNumber = /[0-9]+/.test(password);
  const hasMinChars = password.length >= 8;

  return hasSpecial && hasAlpha && hasUppercase && hasNumber && hasMinChars;
};

它们在同一个目录中。错误输出:

在此处输入图像描述

标签: javascriptreactjsjestjs

解决方案


尝试将您的括号移动到类似...

expect(validateEmail('test@email.com')).toBe(true);

或类似的东西用于第二次测试

expect(validateEmail('badEmail')).toBe(false);


推荐阅读