我正在使用TDD编写React / Redux应用程序。问题是如何处理编写新应用程序的第一步,给出我想要使用的所有样板文件。
根据TDD,我应该只编写最小代码才能通过我的测试,然后才重构。例如,我应该在没有Redux的情况下开始,然后重构并引入Redux吗?考虑到Redux'我将进行相当大的重构。样板(存储/减速器/包装元件等)
我理解TDD方法的巨大优势。问题是,是否允许采用更好的方法"在这些情况下,使用超过最小代码集来传递测试..
答案 0 :(得分:4)
Redux不会影响您编写最小代码以通过每项测试的能力。
你个人的React组件只是在拿道具和做/显示某些东西。您对这些组件的单元测试不应该关心这些道具是以标准的React方式传递,还是通过react-redux插入。因此,Redux的存在不会影响您使用最少的代码传递React组件测试的能力。
有一些小的例外,例如将组件状态移动到Redux状态,或者改变副作用的方式(例如从API获取数据)。这些类型的更改可能需要对您的测试进行一些更改,但如果有的话,它们可能会使它们变得更简单。
当然,如果你添加Redux,你将不得不为新的Redux reducer / action creators / selectors等编写测试,但编写这些测试是非常简单的。你不会复制任何工作:无论你是否使用Redux,你花在编写测试上的时间都大致相同。
至于是否使用Redux开始的一般概念:创建Redux的Dan Abramov建议从简单的React开始,然后如果你发现需要的话,只需要在路上添加Redux。
答案 1 :(得分:3)
我首选的方法是先测试反应,然后根据送到它的道具检查组件是否正确呈现。
类似的东西:
<form>
<input class="form-control" ng-model="range.first"></input> <!-- insert first number -->
<input class="form-control" ng-model="range.last"></input> <!-- insert last number -->
<button class="btn btn-primary" ng-click="insertRange(range)">Add numbers to database</button>
</form>
然后我会为redux添加测试,以检查状态是否根据提供给reducer的输入而改变。
最后是一个偏好的问题。