我正在使用Jasmine BDD Javascript库并且非常享受它.我有测试代码,我想重用(例如,测试基类的多个实现或在稍微不同的上下文中运行相同的测试),我不知道如何使用Jasmine.我知道我可以将代码从jasmine函数移到可重用的类中,但我喜欢代码读取散布Jasmine函数的方式(描述,它),我不想将规范与测试代码分开,除非我不得不.有没有人使用Jasmine遇到这个问题,你是如何处理它的?
我正在尝试将一些按合同设计的技术融入到我的编码风格中.后置条件看起来像嵌入式单元测试对我来说很多,我想知道我的思路是在正确的轨道还是偏离基础.
维基百科将后置条件定义为"条件或谓词,在执行某些代码段之后或在正式规范中的操作之后必须始终为真.后置条件有时使用代码本身中的断言进行测试".
这与您在直接验证状态的单元测试中所做的不同(不使用模拟)吗?
如果是这样的话:
1)通过使用后置条件,我现在不是在我的生产代码中嵌入测试代码,并不是不赞成的吗?
2)使用后置条件是否应该改变单元测试的结构?我的第一个想法是断言逻辑从测试转移到后置条件.也就是说,测试将使用相同的输入,我仍然在测试我之前测试的所有内容,但现在不是在单元测试中进行断言,而是在对后置条件传递与否进行简单的二元断言.
3)我的第二个想法是后置条件代码可能具有控制流,因此不适用于测试代码,这应该是简单的并且避免控制流.但是,如果我测试后置条件,我可以在单元测试中依赖它们吗?
4)测试后置条件似乎很困难,因为如果我正确理解它们,它们基本上是通过或失败的,你必须重复后置条件本身的逻辑来检查它是否正确.那么,你如何测试后置条件?您是否通过在单元测试中不使用它们并确保您的单元测试和后置条件一起通过或失败来检查它们?
5)我的单元测试有时会验证方法是否导致协作者状态发生变化.在标准实践中,后置条件是否涵盖协作者状态或仅定义它们所定义的类的状态?
我想知道是否有人有任何信息或猜测何时或是否会有Node.js的本机Windows版本/端口.