如何摆脱`警告:<text>使用大写HTML。在运行jest测试时,始终在React。警告中使用小写HTML标记

时间:2018-02-05 13:12:47

标签: react-native jestjs enzyme

我的测试看起来像这样

import { shallow } from "enzyme"
import * as React from "react"
import { Text } from "react-native"

import { StatusCircle } from "../StatusCircle"

it("renders correctly", () => {
    const circle = shallow(<StatusCircle nr={1} total={10} />)
    expect(circle.find(Text).render().text()).toEqual("1/10")
    expect(circle).toMatchSnapshot()
})

运行测试

 PASS  src/components/__tests__/StatusCircle.tsx
  ● Console

    console.error node_modules/fbjs/lib/warning.js:33
      Warning: <Text /> is using uppercase HTML. 
               Always use lowercase HTML tags in React.
    console.error node_modules/fbjs/lib/warning.js:33
      Warning: Received `true` for a non-boolean attribute `accessible`.

这是一个React Native应用程序。文本元素以大写字母书写。 我如何告诉Jest或Enzyme不应该为此抛出任何错误消息?

1 个答案:

答案 0 :(得分:1)

这已成为Jest Github回购中的一个问题,但似乎是预期的行为。文档确实解释了可能的解决方法,有关详细信息,请参阅this link

你基本上有3个选择:

  1. 使用react-test-renderer
  2. 以文字形式呈现: jest.mock('./ StatusCircle',()=&gt;()=&gt;'StatusCircle');
  3. 呈现为自定义元素: jest.mock('./ StatusCircle',()=&gt;'status-circle');