簡體   English   中英

單元測試 mirkoORM 實體

[英]Unit testing mirkoORM entities

我正在嘗試對 MikroORM 實體中的方法進行單元測試,從而用測試數據填充 mikroORM collection字段。 (我用開玩笑):

describe('Team Tests', () => {
    it('isLeader should return true when given user is the team leader', () => {
       // Given
        const team = new Team('Test team');
        const user = new User('Test User', 'test@test.fr');

        team.members.add(new TeamMember(user, TeamRole.Leader));

        // When
        const result = team.isLeader(user.userId);

        // Then
        expect(result).toBe(true);
    });
});

但是,當我運行測試時,將數據添加到集合時遇到以下錯誤:

Cannot read properties of undefined (reading 'properties')
TypeError: Cannot read properties of undefined (reading 'properties')
    at Collection.get property [as property] (C:\Users\arsen\git\HorizonWeb\api\node_modules\@mikro-orm\core\entity\ArrayCollection.js:123:44)
    at Collection.validateItemType (C:\Users\arsen\git\HorizonWeb\api\node_modules\@mikro-orm\core\entity\Collection.js:317:71)
    at C:\Users\arsen\git\HorizonWeb\api\node_modules\@mikro-orm\core\entity\Collection.js:111:40
    at Array.forEach (<anonymous>)
    at Collection.add (C:\Users\arsen\git\HorizonWeb\api\node_modules\@mikro-orm\core\entity\Collection.js:111:19)
    at Object.<anonymous> (C:\Users\arsen\git\HorizonWeb\api\src\teams\team.entity.spec.ts:11:22)
    at Promise.then.completed (C:\Users\arsen\git\HorizonWeb\api\node_modules\jest-circus\build\utils.js:390:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\arsen\git\HorizonWeb\api\node_modules\jest-circus\build\utils.js:315:10)
    at _callCircusTest (C:\Users\arsen\git\HorizonWeb\api\node_modules\jest-circus\build\run.js:218:40)

知道如何正確地對 MikroORM 實體進行單元測試嗎?

您需要先初始化 ORM 才能使用實體。 對於不想接觸數據庫的單元測試,可以使用第二個參數不連接數據庫,但需要進行實體發現。 沒有它,就沒有元數據,也沒有打補丁的實體原型——這是傳播工作所必需的。

暫無
暫無

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

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