在Node.js中进行DRYtesting

我已经写了一个Node.js CLI,并希望进一步的开发以TDD风格进行。 我有一个理想的工作stream程,想知道现有的框架是否可行。

  • 当我编写一个新的函数时,我想在一个断言中logging它的前提条件,如果input没有被validation,将会抛出一个错误。
  • 后置条件应在function中或附近指定
  • 前置条件和后置条件应该生成用npm test运行的npm test
  • 断言只能在开发模式下检查
  • 每个函数中的文档都应该为CLI生成(html | md)文档
  • 如果我想添加除前置条件/​​后置条件/不变testing之外的testing,应该很容易
  • 当嘲笑testing时,应该有一种方法来指定“之前的宇宙”和“之后的宇宙”。 例如,为了testing支持新项目的命令,我应该能够将初始目录结构指定为空({}),并将最终目录结构指定为表示结果的JSON对象({name:“project “,path:”/项目“,types:”目录“,儿童:{…}})< – 或类似的东西。 这似乎需要拦截写入文件系统的能力。

我还没有自动化testing生成的候选库。 我认为MocharewireContractual / Obligations可能适用于其他任何事情,但是我有兴趣了解其他方法。