如何在测试中使用console.log

时间:2018-03-20 15:16:13

标签: javascript reactjs enzyme jest

我有这样的测试,我想在终端上看到console.log。我怎么能得到它?例如console.log(rafSpy)。你完全这样做了吗?

it("should not render coin if move time ended", () => {
            const rafSpy = jest.spyOn(window, "requestAnimationFrame");
            console.log(rafSpy)
            let rafCb;
            rafSpy.mockImplementation(cb => rafCb = cb);
            const perfSpy = jest.spyOn(performance, "now");
            perfSpy.mockReturnValue(0);

            const subject = mount(<CoinsAndStars stars={true} coins={true} DeviceSupport={DeviceSupport} />);
            ctxMock.ellipse = jest.fn();
            subject.instance().coins[0].moveTime = 2;
            subject.instance().coins[0].lifeTime = 1.5;
            const visibleCoinCount = COIN_COUNT - 1;
            const ellipseDrawCountInOneFrameRender =
                ((COIN_WIDTH * 2) / EDGE_SEGMENT_STEP + 1)
                * visibleCoinCount
                + visibleCoinCount;
            // 1.5sec of lifet will be increased by 0.6ms
            rafCb(600);
            expect(subject.instance().coins[0].lifeTime).toBeGreaterThan(2);
            expect(ctxMock.ellipse).toHaveBeenCalledTimes(ellipseDrawCountInOneFrameRender);
            rafSpy.mockRestore();
            perfSpy.mockRestore();
        });

1 个答案:

答案 0 :(得分:0)

您尝试完成的任务可能需要一个解决方法,看看您的代码中使用的Web API Console如何仅用作浏览器到浏览器的功能界面。

我的一个建议是使用交互式开发环境(IDE)来查找类似的工作流程。像C9.ioStackBlitz.com这样的IDE可以帮助您找到所需的易用工作流程,允许您以完全自定义的方式对云工作空间进行分区。拖放您的预览选项卡,终端选项卡或脚本标签,无论您在哪里找到它都更方便,最重要的是,无需麻烦就可以进行编码!