我有一个徽标组件:
import React from "react";
import logo from "assets/images/logo.png";
const Logo = () => {
return <img style={{ width: 50 }} src={logo} alt="logo" />;
};
export default Logo;
测试文件:
import React from "react";
import Logo from "components/shared/Logo";
describe("<Logo />", () => {
it("renders an image", () => {
const logo = shallow(<Logo />);
expect(logo.find("img").prop("src")).toEqual("blahh");
});
});
但是当我运行测试时,出现了一些奇怪的错误:
$ NODE_PATH=src jest
FAIL src/tests/Logo.test.js
● <Logo /> › renders an image
TypeError: val.entries is not a function
at printImmutableEntries (node_modules/expect/node_modules/pretty-format/build/plugins/immutable.js:44:5)
at Object.<anonymous>.exports.serialize (node_modules/expect/node_modules/pretty-format/build/plugins/immutable.js:178:12)
我应该如何测试图像 src === “assets/images/logo.png”?
原文由 bigpotato 发布,翻译遵循 CC BY-SA 4.0 许可协议
我假设您在 Logo components 附近的
__test__
目录中编写测试。无论如何,将您的“assets/images/logo.png”相对于您的测试文件导入。
如果你的项目结构是这样的
首先,就像我说的那样,通过键入以下内容将图像导入您的 logo.test.js: