【发布时间】:2017-11-30 16:20:09
【问题描述】:
我有 react 的这个无状态组件
const Clock = () => {
const formatSeconds = (totalSeconds) => {
const seconds = totalSeconds % 60,
minutes = Math.floor(totalSeconds / 60)
return `${minutes}:${seconds}`
}
return(
<div></div>
)
}
export default Clock
如何测试 formatSeconds 方法?
我写了这个,测试失败了。
import React from 'react'
import ReactDOM from 'react-dom'
import expect from 'expect'
import TestUtils from 'react-addons-test-utils'
import Clock from '../components/Clock'
describe('Clock', () => {
it('should exist', () => {
expect(Clock).toExist()
})
describe('formatSeconds', () => {
it('should format seconds', () => {
const Clock = TestUtils.renderIntoDocument(<Clock />)
const seconds = 615
const expected = '10:15'
const actual = Clock.formatSeconds(seconds)
expect(actual).toBe(expected)
})
})
})
第一个测试通过了,但可能在执行 Clock.formatSeconds 时出现问题。
【问题讨论】:
-
我不明白你的组件。为什么你的函数里面有一个永远不会被使用或暴露的函数?
标签: javascript unit-testing reactjs ecmascript-6 karma-runner