1

我正在使用 Karma 在 AngularJS 中运行 e2e 测试。

在一个describe()块内,为什么不管它们在测试中的顺序如何,it()块总是在任何嵌套块之后执行?describe()

例如:

describe( 'Hello Page Nav Bar', function()
{
    it( 'should be on the hello page', function()
    {
        expect( browser().location().url() ).toBe( '/hello' );
    } );

    // ... many other it() blocks relating to 'Nav Bar' ...

    // Create nested describe specifically for menu items within the nav bar
    describe( 'Nav Bar Menu Items', function()
    {
        it( 'should have 12', function()
        {
            expect( element( '.menu-items div' ).count() ).toBe( 12 );
        } );

        // ... many other it() blocks relating to 'Nav Bar Menu Items' ...
    } );
});

最终将按以下顺序执行:

* Hello Page Nav Bar
   *  Nav Bar Menu Items
      *   should have 12
   * should be on the hello page

我想在其他任何事情之前测试“应该在你好页面上”是有道理的。

4

1 回答 1

1

我同意。

一种解决方法是始终保留仅包含其他“描述块”或仅包含“it 块”的描述块。这样,顺序保持一致。

于 2014-01-16T16:40:16.003 回答