我最近采取了一项工作,没有使用ES6,但在那里反应的项目。我有一个ES6背景,只写了一个大文件,我不知道如何测试而不使用ES6。如何测试私人React组件
基本上,我有一个主要组件,它大约有7个左右的私有组件,它们大多作为独立组件构建,以提高可读性,测试和性能。 (如果能够对私人组件应该组件更新是一个巨大的推动)
这里是我的问题:
而不导出我的私人成分,我不能找到一种方法来编写测试它们。
,因为我们没有使用ES6,我不能使用
export default MyComponent
export PrivateComponent1
export PrivateComponent2
语法,我所知道的多个组件从一个单一的文件导出的唯一方式是使用
exports.MyComponent = MyComponent
exports.PrivateComponent1 = PrivateComponent1
exports.PrivateComponent2 = PrivateComponent2
然而,这是不好的,因为然后在需要声明我需要使用
const MyComponent = require('MyComponent').MyComponent
理想情况下,我想使用的东西l ike:
module.exports = MyComponent
exports.PrivateComponent1 = PrivateComponent1
exports.PrivateComponent2 = PrivateComponent2
但这似乎是无效的。
此外,最好不要将其分解为单独的文件。
...这是我得到的不是做TDD :(
为什么你在一个文件中有多个组件?理想情况下,即使只有其他组件使用它,也可以将每个组件抽象到它自己的文件中。抽象层有它自己的好处,再加上你可以单独导出每个组件并且不处理多个导出一个文件问题 – finalfreq
组件可以非常精细,我相信它确实有助于可读性,性能和调试。他们不想用一堆较小的组件来污染文件夹。 – MichaelTaylor3D
在这种情况下,我会说你唯一的选择是导出一个具有键/值对的对象,并且必须执行'const MyComponent = require('MyComponent')。MyComponent' – finalfreq