使用Reactjs的TDD,结合Reactify、Babelify、Browserify和Gulp

3

我正在寻找在使用以下技术的项目上运行测试:

  • browserify 及其转换器
    • babelify
    • reactify

我尝试了 JSDOM + Mocha 的组合,但测试一个尚未构建的组件将导致一个组件从另一个组件的 require 调用失败:

> mocha --compilers js:babel/register --recursive

module.js:338
    throw err;
    ^
Error: Cannot find module 'system/services/AuthService'

我认为在gulp的build watchify和build任务期间运行mocha测试是必要的。但是我不确定在构建过程中处理测试是否是一个好选择。

通常,在成功构建之后,我会得到一个ES5文件client/build/js/bundle.js

我希望能够使用需要通过browserify才能被我的测试库读取的ES6文件来测试我的组件。

是否有人能够提供一种好的选择,包括一些npm模块或任何可以帮助我在我的环境中实现TDD的东西?


在我看来,非常值得一试:http://reactjsnews.com/testing-the-easy-way/ 或者如果你更喜欢通常的方式 http://reactjsnews.com/testing-in-react/ - romseguy
谢谢,但这两个示例都展示了如何使用测试工具,但并没有展示如何管理从应用程序组件中通过 require 导入的内容。当我需要导入一个只能通过 browserify 访问的文件时,这将会失败。 - Dimitri Kopriwa
1个回答

0

兄弟,这完全是同样的问题。这个例子展示了一个名为HelloReact的React组件,它不导入任何需要从browserify中要求的外部文件。如果我的问题不够清楚,请告诉我。 - Dimitri Kopriwa
你的问题不够清晰。我看到你想要使用browserify、mocha和react进行TDD。我已经发送了一个链接,展示了如何做到这一点。如果你想在其中添加一些额外的require语句,我认为那也应该可以。这只是一个简短的例子。如果你想要加入babel,只需将babelify转换器添加到你的package.json中即可。 - mantoni
非常感谢您的帮助,但正如我所告诉您的那样,只要被测试的文件不依赖于React项目中的其他js文件,这项工作就可以完成。由于React是基于组件的逻辑,您大多数情况下无法以这种方式测试您的组件,因为您必须先构建。 - Dimitri Kopriwa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接