从clojure.spec生成的样本数据的测试序列

时间:2017-12-11 22:23:27

标签: clojure clojurescript reagent clojure.spec clojure.test

上下文

  • 我有一个对数据结构进行操作的函数。
  • 我已经为这个函数操作的数据结构编写了一个规范。
  • 此函数返回在浏览器(PhantomJS)中呈现的试剂组件
  • 规范有一些可选键,根据数据传递给函数时数据是否存在,上述函数的输出(在浏览器中呈现的组件)将受到影响。
  • 我希望使用clojure.test来比较传递给生成组件的函数的数据结构的值与从渲染元素中获取的值,因此简单的单元测试或输入 - >输出比较是我要去的地方。

问题

由于在规范生成器上调用generatesample有时会包含或省略可选字段,因此我想迭代使用sample生成的相当大的数据集并进行测试每个数据结构,但我不知道“正确”或惯用的方式来做到这一点。

之前我在are中使用了clojure.test,这很棒,但是因为我正在测试浏览器中呈现的组件,而are测试输入 - >输出它似乎不适合这份工作。

对于这里普遍接受的做法或者语言/ clojure.test功能的建议,我会非常感激。这会让我以最惯用的方式做这件事。

1 个答案:

答案 0 :(得分:1)

  

将传递给生成组件的函数的数据结构的值与从渲染元素中获取的值进行比较

如果可能,我会使用<div class="container"> <a href="#"><i class="fa fa-border"></i></a> <a href="#"><i class="fa fa-border"></i></a> <a href="#"><i class="fa fa-border"></i></a> <a href="#"><i class="fa fa-border"></i></a> <a href="#"><i class="fa fa-border"></i></a> </div> css that not working: .fa-border{ &:nth-child(1){ border: 1px solid #d12883; } &:nth-child(2){ border: 1px solid #39a835; } } s/fdef:args:ret args来指定函数输入和输出之间的关系,然后{{ 1}}这个功能。在规范指南的testing部分中有一个示例。

  

迭代使用样本生成的相当大的数据集并测试每个数据结构

这基本上是:fn所做的。

对于clojure.test集成,您可以check作为测试套件的一部分运行,如下所示:

check