Tôi thích ý tưởng thử nghiệm đơn vị nhưng tôi gặp sự cố khi áp dụng nó cho lập trình trò chơi. Trò chơi có trạng thái cao và thường mã không tự chia thành các đơn vị riêng biệt. Theo kinh nghiệm của tôi, hầu hết các chức năng thay đổi trạng thái thay vì trả về các giá trị.Kiểm thử đơn vị có khả thi trong lập trình trò chơi không?
Hãy xem xét một hành động đơn giản như playerJump(height)
. Tôi rất muốn có một bộ kiểm tra kiểm tra nhiều trường hợp để đảm bảo rằng nhảy luôn hoạt động như mong đợi. Tuy nhiên, hàm này có thể sẽ không trả về giá trị nào và có tác dụng phụ là, player.velocity.y = -height
và checkCollisions(player)
. Tôi không thể nghĩ ra một bài kiểm tra đơn vị rõ ràng để xây dựng xung quanh điều này.
Thử nghiệm đơn vị có thực sự không khả thi trong các ứng dụng có trạng thái cao như trò chơi không? Là những lợi thế của thử nghiệm đơn vị tuyệt vời như vậy mà nó sẽ có giá trị trò chơi lập trình chức năng?
Cập nhật:
Games từ bên trong có một loạt các bài báo trong chiều sâu về việc sử dụng Test Driven Development trong các trò chơi. Tôi rất khuyến khích họ cho bất kỳ ai quan tâm đến chủ đề này. Dưới đây là bài viết đầu tiên:
http://gamesfromwithin.com/stepping-through-the-looking-glass-test-driven-game-development-part-1
Đối với UnitTest ++, hãy truy cập github.com/unittest-cpp/unittest-cpp. Mọi thứ khác đã lỗi thời. – Markus