我从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。用两部分名称(用点分隔)检查元素是否有不同的约定?
答案 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);