Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确保Jasmine单元测试中的代码干燥?_Javascript_Unit Testing_Jasmine - Fatal编程技术网

Javascript 如何确保Jasmine单元测试中的代码干燥?

Javascript 如何确保Jasmine单元测试中的代码干燥?,javascript,unit-testing,jasmine,Javascript,Unit Testing,Jasmine,如果我有一个popover,我想测试它: 正在创建 被操纵 被毁 将其声明在一个地方(隐藏在“descripe”中)是有益的,这样它就可以在整个“its”中共享 我们应该在测试之间共享东西吗?也就是说,test2依赖于首先运行test1? 用茉莉花做这件事最好的方法是什么?依赖测试顺序是件坏事。要在测试之间共享内容,您可以使用一种方法来设置对象的状态。假设伪代码如下: var popover = getPopover({state:'init'}); //checking init state

如果我有一个popover,我想测试它:

  • 正在创建
  • 被操纵
  • 被毁
  • 将其声明在一个地方(隐藏在“descripe”中)是有益的,这样它就可以在整个“its”中共享

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

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

    var popover = getPopover({state:'init'});
    //checking init state
    ...
    //other test starting
    var popover = getPopover({state:'manipulated'});
    //checking the state
    
    因此,主要思想是能够在需要的状态下初始化对象。 请注意,如果执行初始化的代码不多,并且不需要大量重用,则可以为每个测试硬编码状态设置。当然,它不是干的,但是您可以从可以阅读的测试中获益,而不需要参考其他方法。有时候这是件好事,但这要看情况而定


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

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

    var popover = getPopover({state:'init'});
    //checking init state
    ...
    //other test starting
    var popover = getPopover({state:'manipulated'});
    //checking the state
    
    因此,主要思想是能够在需要的状态下初始化对象。 请注意,如果执行初始化的代码不多,并且不需要大量重用,则可以为每个测试硬编码状态设置。当然,它不是干的,但是您可以从可以阅读的测试中获益,而不需要参考其他方法。有时候这是件好事,但这要看情况而定

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