Chúng tôi đang sử dụng mẫu trình tạo để tạo dữ liệu thử nghiệm. Các đối tượng miền này có quan hệ giữa chúng. Các bài kiểm tra chức năng của chúng tôi yêu cầu các đối tượng này phải được duy trì.Dữ liệu thử nghiệm phức tạp liên tục
Hãy suy nghĩ về mô hình này:
domain model http://i34.tinypic.com/21mg1gn.png
Nếu tôi muốn có một ví dụ đơn giản của CI làm aNew().c().build()
Nếu tôi muốn nó được tiếp tục tồn tôi làm aNew().c().saveIn(session)
Nếu tôi muốn một ví dụ về C có BI được biết là aNew().c().with(b).build()
Vâng, bạn có anh ấy nghĩ. Vấn đề của tôi là, nếu tôi muốn tồn tại một C, nó có nên tồn tại không? Hoặc nó nên được tiếp tục tồn tại trước khi tay? Điều gì sẽ xảy ra nếu tôi muốn có B mặc định hợp lý? Điều gì về nếu tôi muốn tồn tại một D? Nó có nên tồn tại tất cả A, B, C không?
Tất nhiên hệ thống thực sự phức tạp hơn nhiều (đôi khi có tham chiếu vòng tròn). Tôi đang tìm cách thực hành tốt nhất để duy trì dữ liệu thử nghiệm phức tạp.
Chỉnh sửa: Có vẻ như tôi đã gặp phải rào cản ngôn ngữ, ngôn ngữ mẹ đẻ của tôi không phải là tiếng Anh, vì vậy tôi xin lỗi vì sự tối tăm. Dưới đây là thông tin thêm:
- Nó không phải là mã di sản mà tôi đang cố gắng thử nghiệm
- Tôi cố gắng để viết một bài kiểm tra vùng phủ sóng, không một thử nghiệm đơn vị (như là kết quả tôi sẽ không được chế giễu bất cứ điều gì)
- Phần mềm tôi đang cố gắng kiểm tra các công trình nếu cơ sở dữ liệu được điền vào một số mở rộng (nó không sử dụng tất cả các thực thể).
PS. Xin đừng ngần ngại hỏi thêm thông tin, bởi vì tôi đã đấu tranh để tìm ra cách thực hành tốt nhất có thể. Điều gần nhất tôi đã đưa ra là:
- Theo dõi những gì đã được đặt rõ ràng khi xây dựng một thực thể.
- Giả sử rằng các thực thể được đặt rõ ràng đã tồn tại, không tồn tại chúng.
- Kiên trì mọi thứ khác (với sự riêng tư của họ).
Điều này sẽ hiệu quả nhưng cảm giác nhện của tôi đang ngứa ran, tôi sẽ làm điều gì sai vì sẽ có logic liên quan đến mã thử nghiệm, sẽ rất phức tạp.
Chỉnh sửa 2: Tôi sẽ cố gắng làm cho bản thân mình rõ ràng hơn. Khi tôi viết/chạy đơn vị của tôi và một số thử nghiệm tích hợp, tôi không có vấn đề gì, bởi vì dữ liệu thử nghiệm không được duy trì, nó tồn tại trong bộ nhớ.
Nhưng khi tôi cố gắng duy trì dữ liệu thử nghiệm của mình, hibernate sẽ không cho phép tôi lưu một thực thể mà không có mối quan hệ của nó.
Làm cách nào để khắc phục sự cố này?
Hãy tưởng tượng những dữ liệu này đã có trong DB. Và một quá trình khác (mà tôi đang thử nghiệm) đang đọc những dữ liệu này. Nhưng đôi khi một B là có liên quan và tôi muốn làm cho nó có thể nhìn thấy trong các thử nghiệm trong khi tạo ra và kiên trì Bs; nhưng đôi khi chúng không liên quan và tôi đang cố che giấu chúng sau các nhà xây dựng. – nimcap
Điều đó không có ý nghĩa với tôi. Nếu dữ liệu đã có trong DB, tại sao (và whan) bạn cần phải tồn tại nó? Và bạn có ý nghĩa gì bởi "Tôi muốn làm cho nó [B] có thể nhìn thấy trong bài kiểm tra" ?? – sleske