【发布时间】:2015-06-30 18:39:16
【问题描述】:
以下是一组虚构的case classes。实际上,我们有类似的 ADT。
case class Alphabet(a:Character)
case class Word(alphabets: List[Alphabet])
case class Sentence(words : List[Word])
case class Paragraph(sentences : List[Sentence])
case class Chapter(paras : List[Paragraph])
有如下所示的服务 API。
def saveSentence(sentence : Sentence)
def saveParagraph(paragraph : Paragraph)
def saveChapter(chapter:Chapter)
测试上述 API 的测试有很多种。对saveChapter 的测试将准备所有需要的数据来构造Chapter 等。
如果你想创建“可组合”的函数,比如
val alphabests :List[Alphabet] = ...
generateWord(alphabests).compose 生成Word,其他数据也是如此。其中前一个函数的输出成为后续函数的输入,其中包含从上一步构建的必要数据用于下一步。
在不依赖于测试框架的情况下,您将使用哪些模式来实现此类行为(在这种情况下是最大规模的)
【问题讨论】:
-
如果这是测试数据,为什么不使用测试框架中的函数?