如何断言Jest / Enzyme中的元素“数组属性”?

时间:2018-07-05 15:02:15

标签: reactjs typescript jestjs enzyme

我从React组件中获得了以下呈现的HTML

<Blueprint2.Select
        disabled={false}
        filterable={false}
        itemRenderer={[Function]}
        items={
          Array [
            "JK",
          ]
        }
        onItemSelect={[MockFunction]}
      >

我要断言的是,items元素内的数组包含正确的列表,即只是“ JK”

我尝试过

expect(wrapper.find("Blueprint2.Select").find("[items=['JK']").exists()).toEqual(true);  

但这不起作用。我该如何断言?

更新:实际上,即使只是检查Blueprint2.Select是否存在

expect(wrapper.find("Blueprint2.Select").exists()).toEqual(true);  

即使我已经生成了快照并且可以在其中看到上面的HTML。用两部分名称(用点分隔)检查元素是否有不同的约定?

1 个答案:

答案 0 :(得分:0)

您应该将复杂的语句分成多个语句,就像在其他任何编程中一样:

FROM keymetrics/pm2:latest-alpine

RUN mkdir -p /app

WORKDIR /app

COPY package.json ./
COPY .npmrc ./

RUN npm config set registry http://private.repo/:_authToken=$AUTH_TOKEN && \
  npm install utilities@0.1.9 && \
  apk update && apk add yarn python g++ make && rm -rf /var/cache/apk/* && \
  set NODE_ENV=production && \
  npm config set registry https://registry.npmjs.org/ && \
  npm install

COPY . /app

RUN ls -al -R

EXPOSE 51967

CMD [ "pm2-runtime", "start", "pm2.json" ]

为数组写一个期望值的关键是要意识到它们是作为props传入的。因此,您可以直接提取所需的道具:

const expectedItems = ["JK",]
const component = wrapper.find("Blueprint2.Select");
expect(component.exists()).toBeTruthy();

或者如果您希望获得不止一个道具的价值:

expect(component.props().items).toEqual(expectedItems);