我有一個靜態類,我用來保存我的測試數據。當我在NUnit測試中引用它時,我所做的任何更改都會在測試中持續存在。NUnit在測試中保持靜態數據
例如,我在我的測試驗證碼:
OrderDto orderDto = SampleData.OrderDto;
OrderDetailDto orderDetailDto = SampleData.OrderDetailDto;
orderDto.OrderDetails.Add(orderDetailDto);
和樣本數據是這樣的:
public static class SampleData {
public static OrderDto OrderDto = new OrderDto { LastName = "Smith", CreatedById = 5, CreatedByDisplayName = "Smith2" };
}
我第一次運行它,orderDto有0訂單明細。第二次有1,然後2等。我認爲在NUnit測試之間,什麼都沒有持續。它緩存靜態屬性嗎?
它正在更新靜態對象,因爲有一個實例,這就是您的測試所做的。單元測試就像普通代碼一樣;如果他們更新一個靜態字段,那麼該字段會被更新。現在,每次調用此方法時都會返回一個新實例,這意味着更改僅影響當前實例。 – TrueWill 2011-05-29 23:09:06