1

如果我有一个弹出框说,我想测试它:

  1. 正在创建
  2. 被操纵
  3. 被摧毁

将它声明在一个地方(隐藏在“describe”中)是有益的,这样它就可以在“its”之间共享。

应该在测试之间共享东西吗?IE test2 依赖 test1 先运行?用茉莉花做这件事的最好方法是什么?

4

1 回答 1

1

依赖测试订单是一件坏事。要在测试之间共享内容,您可以有一种方法来设置对象的状态。假设下面的伪代码:

var popover = getPopover({state:'init'});
//checking init state
...
//other test starting
var popover = getPopover({state:'manipulated'});
//checking the state

所以主要的想法是能够在你需要的状态下初始化你的对象。请注意,如果执行初始化的代码不多并且您不需要太多重用它,则可以为每个测试硬编码状态设置。当然,它并不枯燥,但是您可以从可以阅读的测试中受益,而无需参考其他方法。有时这是一件好事,但这取决于。

此外,您可以在每次测试之前和之后使用beforeEachandafterEach进行设置和拆卸(这是一个描述级别的东西)。这是执行状态初始化和清理的首选方法之一。

于 2013-08-01T02:49:55.603 回答