我要测试的代码的目的是通过使用树解析数学表达式。因此,我想到以渐进的方式进行测试,慢慢地建立一棵树,并在每次操作后进行测试,类似这样:
TreeBuilder.addNode(small, "A=B*C");
it("should return 0 due to using default values", () => {
expect(small.getValue("A")).to.equal(0);
});
TreeBuilder.changeValue(small, "B", 2);
TreeBuilder.changeValue(small, "C", 3);
it("should update parent value after changing leaves", () => {
expect(small.getValue("A")).to.equal(6);
});
以此类推——细节无关紧要,但你知道了。现在,很明显,这不起作用,因为“it”之外的所有语句都会立即执行,所以我不能进行这样的“渐进测试”。
当然,我可以为每个测试使用不同的数据对象,但我不喜欢这种解决方案,因为那样会很麻烦。
所以我的问题更多的是一个最佳实践,而不是具体的代码:如何最好地测试在多个函数调用中逐步发展的行为?
1条答案
按热度按时间23c0lvtd1#
最佳实践是使每个测试相互独立(如@pascalpuetz所说),但要想做你想做的事情,你可以使用mocha before功能: