Khi sử dụng ứng dụng của mình, tôi đã tình cờ gặp một điều kiện chủng tộc trong một số mã sử dụng một NSOperationQueue
để chạy tác vụ không đồng bộ sau các sự kiện do người dùng kích hoạt. Tôi biết cách sửa chữa điều kiện chủng tộc, vì đó là lỗi thiết kế ngu ngốc mà tôi sẽ không nghiên cứu, nhưng tôi muốn chứng minh lỗi với một trường hợp thử nghiệm (để nó không trở lại trong khi tối ưu hóa/tái cấu trúc thêm xuống dòng). Điều này khiến tôi bối rối. Làm thế nào để đi về thử nghiệm một cái gì đó là đa luồng, đặc biệt là khi mục đích của thử nghiệm là tạo ra một điều kiện chủng tộc?Kiểm tra đơn vị mã dựa trên chuỗi? Bắt buộc một điều kiện chủng tộc
Có ai có bất kỳ liên kết nào để tham chiếu tài liệu mà tôi có thể tham khảo khi nói đến xử lý các chủ đề và thử nghiệm đơn vị không? Tôi đặc biệt quan tâm đến việc tạo ra tình trạng cuộc đua.
Tôi cho rằng bạn sẽ giả lập bất kỳ cấu trúc dữ liệu được chia sẻ nào, và bên trong các đối tượng giả của bạn, bạn có thể thực hiện bất kỳ đồng bộ nào mà bạn cần để thực hiện các chủ đề khác nhau theo thứ tự "sai". –