2017-06-06 133 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

我完全理解問題。我不知道答案有什麼問題嗎?它很重要並將解決問題。 –