Gần đây tôi đã nắm lấy Phát triển dựa trên thử nghiệm (TDD) và nó có tác động tuyệt vời đến sản lượng phát triển của tôi và khả năng phục hồi của cơ sở mã của tôi. Tôi muốn mở rộng cách tiếp cận này với một số công việc kết xuất mà tôi làm trong OpenGL, nhưng tôi không thể tìm thấy bất kỳ cách tiếp cận tốt nào cho việc này.
Tôi sẽ bắt đầu với một ví dụ cụ thể để chúng tôi biết những loại điều tôi muốn kiểm tra; giả sử tôi muốn tạo một khối đơn vị xoay quanh một số trục và tôi muốn đảm bảo rằng, đối với một số số khung, mỗi khung được hiển thị chính xác.
Làm thế nào tôi có thể tạo một trường hợp thử nghiệm tự động cho việc này? Tốt hơn là, tôi thậm chí có thể viết một trường hợp thử nghiệm trước khi viết bất kỳ mã nào để kết xuất khối (theo thông lệ TDD thông thường.) Trong số nhiều điều khác, tôi muốn đảm bảo rằng kích thước, vị trí và hướng của khối là chính xác trong từng khung hình được hiển thị. Tôi thậm chí có thể muốn đảm bảo rằng các phương trình chiếu sáng trong shader của tôi là chính xác trong mỗi khung hình.
Cách tiếp cận hữu ích duy nhất từ xa mà tôi đã gặp phải liên quan đến việc so sánh đầu ra được kết xuất với đầu ra tham chiếu, thường loại trừ thực hành TDD và rất cồng kềnh.
Tôi có thể tiếp tục về các yêu cầu mong muốn khác, nhưng tôi sợ những yêu cầu tôi đã liệt kê là ngoài tầm với.