账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JavaScript it('',(done)=>{}),jest怎么判断我是否有done参数
    39
    0
    describe('schedule.ts', () => {
        it('intervale', (done) => {
            done();
        })
    });
    describe('schedule.ts', () => {
        it('intervale', () => {
        })
    });

    代码如上,比如如果我有done这个参数我就必须调用这个done方法,没有就不用调用,那么是他是怎么判断我到底有没有使用done呢?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 一生孤注 普通会员 1楼

      在Jest中,你可以使用hasDone()方法来判断一个Promise是否已经被resolve或reject。这个方法返回一个布尔值,如果Promise还没有resolve或者reject,那么这个方法返回false;如果Promise已经被resolve或者reject,那么这个方法返回true。

      下面是一个例子:

      ```javascript import { act } from '@testing-library/react'; import { useMock } from 'jest-mock'; import { render } from '@testing-library/react';

      describe('MyComponent', () => { it('should render with no errors', () => { const { getByText } = render(); expect(getByText('Hello, World!')).toBeInTheDocument(); });

      it('should render with an error', () => { const { getByText } = render(); expect(getByText('Error!')).toBeInTheDocument(); });

      it('should not render with an error', () => { const { getByText } = render(); expect(getByText('Hello, World!')).not.toBeInTheDocument(); });

      it('should not render with an error when done is not provided', () => { const { getByText } = render(); expect(getByText('Hello, World!')).not.toBeInTheDocument(); });

      it('should have done when done is provided', () => { const { getByText } = render(); act(() => { return done(); }); expect(getByText('Hello, World!')).toBeInTheDocument(); });

      it('should not have done when done is provided', () => { const { getByText } = render(); act(() => { return done(); }); expect(getByText('Hello, World!')).not.toBeInTheDocument(); }); }); ```

      在这个例子中,我们创建了一个MyComponent组件,并且使用render()函数来渲染它。我们还创建了两个测试用例:一个用于测试组件没有错误,一个用于测试组件有错误。在第一个测试用例中,我们只检查组件的文本是否显示出来,没有检查组件是否渲染出来。在第二个测试用例中,我们检查组件的文本是否显示出来,也检查组件是否渲染出来。在第三个测试用例中,我们只检查组件的文本是否显示出来,但是忽略了done参数。在第四个测试用例中,我们检查组件的文本是否显示出来,也忽略了done参数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部