[英]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();
})
})
但是order
和order2
總是相同的 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.