如何检查笑话中的返回值

问题描述 投票:0回答:1

我正在用玩笑进行单元测试,并且能够成功运行其中的一些,但是有些代码我不知道如何测试。

我有创建组织方法,需要首先检查组织是否已存在。

async createOrganization(opt) {
    try {
        const organizationExist = await this.OrganizationRepository.getOne({name: opt.name})
        if (organizationExist) {
            throw new Error('Organization already exist')
        }    
    } catch (error) {
        throw error
    }

    let organizationObject = {}
    organizationObject.name = opt.name    
    return this.OrganizationRepository.save(organizationObject)
}

到目前为止,这是我能够涵盖的单元测试代码

describe('Create Organization', () => {
    it('should call getOne function', () => {
        const mockGetOne = jest.spyOn(OrganizationRepository.prototype, 'getOne')
        organizationService.createOrganization(expectedOrganization)
        expect(mockGetOne).toHaveBeenCalledWith({name: 'sample org'})
    })

    it('should return created organization', async () => {
        const mockSave = jest.spyOn(OrganizationRepository.prototype, 'save')
        mockSave.mockReturnValue(Promise.resolve(expectedOrganization))
        const result = await organizationService.createOrganization({name: 'sample org'})
        expect(mockSave).toHaveBeenCalledWith({name: 'sample org'})
        expect(result).toBe(expectedOrganization)
    })
})

现在我要测试的是这部分

const organizationExist = await this.OrganizationRepository.getOne({name: opt.name})
if (organizationExist) {
    throw new Error('Organization already exist')
}

如果使用name参数已经存在组织,我想抛出一个错误。

希望你们能帮助我。谢谢

javascript jestjs jest
1个回答
0
投票
expect(() => someFunctionCall()).toThrow();
© www.soinside.com 2019 - 2024. All rights reserved.