2017-06-06 132 views
0

我无法将我的摩卡测试更改为笑话测试。更改摩卡测试以进行笑话测试

我有三个类三种测试文件:FirstTestGroup,SecondTestGroup和ThirdTestGroup,每一个静态的执行方法,包含一些测试,比如:

class FirstTestGroup { 
    execute(params) { 
    describe('some tests', function tests() { 
     it('one test',() => { 
     // uses params 
     }); 
     ... 
    }); 
    ... 
    } 
} 

每个那些执行方法使用相同的参数。这些参数是在调用之前的异步中创建的,如下图所示。

describe('My Tests', function testSuite() { 
    let params; 

    before('param creation', async function asyncFunc() { 
    // creates params asynchronously 
    }); 

    it('should pass all',() => { 
    FirstTestGroup.execute(params); 
    SecondTestGroup.execute(params); 
    ThirdTestGroup.execute(params); 
    }); 
}); 

将它(“应该通过所有”,...)是必要,因为里面一切形容瞬间运行,所以PARAMS会为空,没有它被传递。这在摩卡咖啡中是有效的,因为它可以嵌套,但显然这不适用于笑话。

我可以在测试组运行之前每次调用beforeAll(相当于之前的笑话),但我不想这么做,因为这看起来效率不高。

在定义describe('My Tests',...)之前,我还可以将代码放入before调用中。这似乎是错误的,因为这应该只是描述的一部分。

我在jest文档中找不到任何可以帮助我的文档。

我做错了什么?有没有一种方法可以通过笑话来实现这一点,即使我必须重构测试?但是我想将测试保存在不同的文件中。

这是我的第一个问题,所以请告诉我是否需要更多信息,因为我没有在这里使用写作。

回答

-1

你有没有试过Jest-Codemods呢?

Jest-Codemods允许您将Mocha,AVA,Jasmine测试转换为等效的Jest测试。它还可以帮助您迁移Chai和Expect等断言库。

你做的方式:

npm install -g jest-codemods

转到安装开玩笑,codemods到您的项目和执行jest-codemods

它会问你Which test library would you like to migrate from?

选择摩卡使用箭头键(如你想从摩卡迁移)

接下来,它会问你Will you be using Jest on Node.js as your test runner?

选择Yes, use the globals provided by Jest (recommended)

最后,您需要提供您正在从摩卡迁移到笑话的文件名。

你完成了!

它会自动将您的代码从Mocha迁移到Jest。无需触摸代码。这是Jest最强大的功能之一,它可以节省您的时间,而且您无需担心将摩卡测试改为玩笑测试。

+0

投票的具体原因是什么?让我知道是否有更好的方法。 –

+0

让我看看我是否可以更新它以达到更高的要求。 –

+0

我完全理解问题。我不知道答案有什么问题吗?它很重要并将解决问题。 –