簡體   English   中英

如何使用 Jest 測試 object

[英]How can I test an object using Jest

我正在使用jest ,我想創建一個測試 get api 調用。 為此,我需要將數據添加到數據庫中。 測試數據的正確/最佳方法是什么?

describe('GET /', () => {
    it('should return all users', async () => {
        await Users.collection.insertMany([
            {
                name: 'mike',
                age: 39
                gender: 'other
                description: 'This is a cool desc',
            },
            {
                name: 'seth',
                age: 19
                gender: 'trans
                description: 'This is another cool desc',
            },
        ]);


        const res = await request(server).get('/api/users');
        expect(res.status).toBe(200);
        expect(res.body.length).toBe(2);
        expect(res.body.some((t)=> t.name === 'mike')).toBeTruthy();
    });
});

// 這是我目前的測試。 我應該瀏覽每個數據字段,即姓名、年齡、性別、描述嗎?

我建議檢查每個字段。 如果您的數據與直接插入到 db 中的數據相同,那么使用起來很容易:

expect(res).isEqual(seeds). // where seeds is your array to insert

盡管數據經常存在差異 - 獲取可能會添加一些東西,如時間戳、id 等。有一些工具可以幫助解決這個問題,即arrayContainingobjectContaining 您可以執行以下操作:

expect(res).isEqual({ 
  name: 'foo',
  id:  expect.any(String)
})

這是一篇很好的博客文章,解釋了如何使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM