簡體   English   中英

function 中的新 object 總是在 Z1E35BCBA2DBA1089C7BD0805D4517CF8Z 中返回相同的 object

[英]new object in function always return same object in typescript

我寫了一個 function 來生成模擬 object 如下

export function createOrderMock(): Order {
  return new Order(props);
}

我在測試代碼中導入並使用了它

import { createOrderMock } from './mocks/order.mock';

describe('test1', () => {
  it('test1', () => {
      const order: Order = createOrderMock();
  })
})


describe('test2', () => {
  it('test2', () => {
      const order2: Order = createOrderMock();
  })
})

但是orderorder2總是相同的 object。 因此,如果在 test1 中更改 order,則 order2 也會更改。

我的錯誤是什么?

什么是props

export function createOrderMock(): Order {
  return new Order(props);
}

當您每次調用createOrderMock()時創建一個新的Order object 時,它們都將使用相同的props創建。

我懷疑這就是為什么在test1中更改order上的屬性會影響在test2中創建的order2 object 。

如果props是普通的 JavaScript object,您可以嘗試:

export function createOrderMock(): Order {
  return new Order({ ...props });. // Will use a shallow copy of props
}

嘗試添加jest.clearAllMocks(); 在每次測試之前或之后。

這將清理您制作的模擬,使測試和模擬 object 彼此獨立

暫無
暫無

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

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