2013-08-01 29 views
1

如果我有酥料饼的说,我想测试一下:如何确保茉莉花单元测试中的DRY代码?

  1. 创建
  2. 被操纵
  3. 被破坏

这是有益的它在一个地方声明(隐藏在“描述”中),以便它可以在“它”之间共享。

应该在测试之间分享一些东西吗? I.E test2依赖test1首先运行? 用Jasmine做这件事的最好方法是什么?

回答

1

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

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

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

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