项目的工作模板:https://codesandbox.io/s/blue-currying-3me1t
我设置的唯一测试是在src/App.test.js
中检查名称是否已呈现。我正在尝试设置另一个测试,以检查在生成按钮之前是否调用了函数。
在FontAwesome.js
中,有一个registerIcons()
函数可以注册网站所需的所有图标。我在Buttons.js
中将此函数称为“函数”,因为它是我使用图标的地方。
我想在App.test.js
中创建一个测试,以检查在registerIcons()
中创建按钮之前是否调用了Buttons.js
。
答案 0 :(得分:1)
通常可以通过manually mocking这样的FontAwesome
依赖项来做到这一点:
import React from "react";
import { render } from "@testing-library/react";
import Button from "./Buttons.js";
import registerIcons from './FontAwesome'
jest.mock('./FontAwesome', () => ({
__esModule: true
default: jest.fn()
}))
test("registers icons", () => {
render(<Button />);
expect(registerIcons).toHaveBeenCalled();
});
但是,看来code sandbox does not currently support mocking。不过,您可以在自己的IDE中进行尝试。