如何在 Jest + Enzyme + React Native 中测试 <Text /> 标签的内容?

J. *_*ers 5 unit-testing jestjs react-native enzyme react-native-text

如果我的<Text />标签正确接收props.header为文本,我想用 Jest 和 Enzyme 进行单元测试。

通常我能够<Text />像这样测试标签的内容:

it("should render a label", () => {
  expect(wrapper.find(Text).contains("submit")).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)

但是一旦我传递了一个对象,这就不再可能了。让我演示给你看:

const createTestProps = props => ({
  header: SOME_CONSTANT,
  ...props
});

...

  let wrapper;
  let props;
  beforeEach(() => {
    props = createTestProps();
    wrapper = shallow(<MyList {...props} loaded={false} />);
  });

  it("should render a header", () => {
    expect(wrapper.find(Text).contains(props.header)).toBe(true);
  });
Run Code Online (Sandbox Code Playgroud)

这失败并显示以下错误消息:

? MyList › rendering › still loading › should render a header

    expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: false
Run Code Online (Sandbox Code Playgroud)

我怎么能用 Jest 和 Enzyme 测试这个?

编辑

我发现它与将常量传递给props. 如果我硬编码这样的值props

const createTestProps = props => ({
  header: "Some hardcoded value",
  ...props
});
Run Code Online (Sandbox Code Playgroud)

测试也通过了。有没有办法让这个工作即使是常数?