浅景深和开玩笑之间有什么区别?

时间:2019-01-17 12:33:19

标签: javascript reactjs testing jestjs

开玩笑,使用酶的浅层渲染和渲染之间有什么区别?

以下是两个示例:

使用浅浅测试渲染:

import "jest";
import * as React from "react";
import { shallow } from "enzyme";
import Item from "../item.component";

describe("Item", () => {
  it("renders correct", () => {
    const item = {
        name: "A"
      };

    const component = shallow(
      <Item item={item}/>
    );

    expect(component).toMatchSnapshot();
  });
});

使用render测试渲染

import "jest";
import * as React from "react";
import { render } from "enzyme";
import Item from "../item.component";

describe("Item", () => {
  it("renders correct", () => {
    const item = {
        name: "A"
      };

    const component = render(
      <Item item={item}/>
    );

    expect(component).toMatchSnapshot();
  });
});

这2种方法的典型用法是什么。我用浅表编写了所有测试,在某些情况下应该返回并更改以进行渲染吗?

1 个答案:

答案 0 :(得分:1)

shallowrender特定于酶,可以独立于Jest使用。

shallow仅呈现顶级组件,不需要DOM。它用于隔离的单元测试。

render呈现整个组件,并用Cheerio打包,Cheerio是Node.js的jQuery实现。它旨在借助类似jQuery的选择器进行黑盒集成/ e2e测试。它可能有用途,但通常使用shallowmount

至少在没有其他工具的情况下(toMatchSnapshotenzyme-to-jsonshallow都不应该与mount一起使用。