我用ChefSpec报道了配方代码,然后我与Kitchen进行了集成测试。最后,对于我来说,ChefSpec并不是真正可用的,只需要一个额外的想法来维护,因为:
当我用TDD / BDD编写Java时,我发现使用这种方法带来了实实在在的好处 - 许多小类,DI集成,模块化,更少的错误。
然而,对我而言Chef和ChefSpec只是可用的默认生成规范,可以帮助我解决一些编译和语法错误。
如何将ChefSpec与Chef一起使用,以查看与Java中的TDD / BDD相同的好处。
答案 0 :(得分:1)
ChefSpec是一种更快速的方式来运行食谱,因为它使用Chef Solo。通过这种方式,您可以提供不同的节点属性,在不运行Kitchen的情况下断言特定于操作系统的行为。
答案 1 :(得分:1)
ChefSpec是一个RSpec库,我认为这是你所指的。它是为单元测试而构建的,它通过让所有提供程序默认不实际运行来实现。所以它确实是一个"融合"但没有任何实际的实施,所以它很快。缺点是您无法实际检查副作用是否符合您的想法。为此,您需要实际运行Chef,这就是Test Kitchen的用途。它是一个框架,用于创建VM,在其上运行Chef,然后在VM上运行某种正确性测试。对于正确性测试,您可以使用许多工具,但最常见的是Serverspec(这是一个RSpec库)和InSpec(它不是一个RSpec库,但在大多数情况下看起来很像)。
因此,RSpec参与单元测试和集成测试,但适用于不同的任务。