unit-testing - 单元测试React组件功能

标签 unit-testing reactjs

我正在使用 react 编写一个 Web 应用程序。我对客户端测试不太熟悉,所以我仍在尝试弄清楚如何对我的组件进行单元测试。

我在 react 文档中看到,他们提供了 Test Utilities 来测试自定义 UI 组件,但我没有找到测试组件内部功能的方法。

我有一个表单,我想验证其中的字段,比如说验证电子邮件地址。如何测试该方法的功能?据我所知,人们只是测试 UI 组件本身。

最佳答案

这有点复杂,但这里有一个使用 skin-deep 的示例测试 React 组件内的函数。

组件文件:

export default React.createClass({
  validate(input) {
    return true
  },
  render() {
    if (validate(this.props.input)) {
      return <div>Valid!</div>
    }
    return <div>Not Valid!</div>
  }
})

测试文件:

import React from 'react'
import sd from 'skin-deep'
import Component from 'Component.jsx'

let tree = sd.shallowRender(React.createElement(Component, {}))
const instance = tree.getMountedInstance()

// Now you can run tests on instance functions.
assert instance.validate(foo) === true

我们一直将想要测试的函数放在 React 组件之外,以避免这样做。

关于unit-testing - 单元测试React组件功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36020765/

相关文章:

.net - 在 NUnit 中动态创建测试

Android Marshmallow 权限测试

javascript - Prop 更改后 react 组件不会重新渲染

javascript - 从父 React 刷新子状态

javascript - 从 URL 中删除 '%20' - React-Router

reactjs - 在 React/Bootstrap 4 中,禁用按钮以防止重复表单提交的正确方法是什么?

javascript - Sinon.JS 错误 URL 无效,如何解决

c++ - 是否有可以轻松记录和重放 API 调用结果的库?

java - 使用 Mockito 模拟 spring 存储库删除时无法应用

node.js - 创建 React 应用程序 http-proxy-middleware 不工作