Tôi có thể sử dụng TDD cho ứng dụng gui không? Cách thực hiện.Làm thế nào để áp dụng phát triển Test Driven cho ứng dụng GUI (VC MFC)?
Trả lời
Câu trả lời đó đã phát triển trong vài năm trở lại đây là, bạn không áp dụng TDD để GUI, bạn thiết kế GUI như cách có một lớp bên dưới bạn có thể phát triển với TDD. Các Gui được giảm xuống một bản đồ tầm thường của các điều khiển để ViewModel, thường với các ràng buộc khung, và như vậy là bỏ qua cho TDD.
Điều này được biết đến khác nhau là Presentation Model (Fowler) là kiến trúc Model-View-ViewModel và DataModel-View-ViewModel.
Phương pháp này loại bỏ lớp GUI khỏi TDD và kiểm tra đơn vị. Nó không có nghĩa là GUI không bao giờ được thử nghiệm nhưng chỉ thừa nhận rằng nó không hiệu quả về chi phí để theo đuổi kiểm tra GUI tự động, đặc biệt là một phần của TDD. Việc tích hợp và kiểm tra người dùng phải bao gồm GUI.
Josh Smith's 2009 WPF article là giải thích chi tiết về MVVM với một số thử nghiệm. Gần đây
hơn, Houssem Dellai của 2016 video Creating Unit Tests for Xamarin Forms Apps cho thấy một giao diện người dùng XAML với ràng buộc ViewModel và đi thông qua việc tạo một dự án thử nghiệm đơn vị
Tại sao không. Here là một bài viết hay, từ object mentor.
Tìm thấy một bài đăng trên blog khác, TDD - Introduction to Moq. Nó liên quan đến C# và VB.NET.
Kiểm tra Myth and Misconception liên quan đến TDD là điều bắt buộc.
Đây là sách liên quan đến .NET, TDD in Microsoft .NET.
Chad Myers có một đi bộ thoải mái thông qua thử nghiệm bộ điều khiển:
http://www.chadmyers.com/Blog/archive/2007/11/27/tdd-with-asp.net-mvc-3.5-extensions.aspx
- 1. Làm thế nào để gọi hàm COM DLL (trong VC++) từ ứng dụng VC++ .EXE?
- 2. Làm thế nào để phát triển ứng dụng Windows
- 3. Tạo GUI với MFC
- 4. Làm thế nào để sử dụng C# dll trong vC++?
- 5. Phát triển ứng dụng iOS cho Cydia
- 6. Làm thế nào để phát triển ứng dụng WebRTC cho người mới bắt đầu?
- 7. Phát triển GUI Linux
- 8. Làm thế nào để phát triển các ứng dụng IronPython trên Mono?
- 9. Python GUI cho ứng dụng di động
- 10. Phát triển ứng dụng BlackBerry
- 11. Ứng dụng Trello iPhone được phát triển như thế nào?
- 12. Làm cách nào để bỏ qua GUI trong ứng dụng MFC nếu các tùy chọn dòng lệnh tồn tại?
- 13. Python trong Phát triển ứng dụng máy tính để bàn
- 14. Làm thế nào để áp dụng texture cho glutSolidCube
- 15. Làm cách nào để nhúng firefox vào ứng dụng GUI?
- 16. Làm thế nào để sử dụng bộ hẹn giờ trong ứng dụng dựa trên hộp thoại MFC?
- 17. sử dụng osgi để phát triển một ứng dụng
- 18. Làm thế nào để tạo TestContext cho Spring Test?
- 19. Làm thế nào để phát triển Gems?
- 20. Làm thế nào để phát triển một ứng dụng iphone với chức năng reverb?
- 21. Làm thế nào để phát triển một ứng dụng có phần bổ trợ?
- 22. Làm cách nào để tạo GUI cho ứng dụng windows bằng C++?
- 23. Sử dụng python để phát triển ứng dụng web
- 24. Làm thế nào để triển khai các ứng dụng VB6?
- 25. Làm thế nào tôi có thể làm cho một ứng dụng GUI trong Lua
- 26. Làm thế nào để kết hợp DDD (Domain Driven Design) DCI để thiết kế một ứng dụng
- 27. Làm thế nào để chạy ứng dụng Android trên trình phát ứng dụng Bluestack bằng Eclipse?
- 28. Ứng dụng Windows và phát triển ứng dụng web
- 29. Inflator trong phát triển ứng dụng Android
- 30. Phát triển các ứng dụng cho Windows Embedded Compact 2013
Great câu trả lời, cảm ơn. Tuy nhiên, lưu ý rằng liên kết tới 'các cuộc thảo luận tốt' khá vô ích - nó chỉ tới tìm kiếm ViewModel, một khu vực rộng lớn bao gồm một số lượng lớn các cuộc thảo luận không liên quan gì đến TDD. Liên kết đến các cuộc thảo luận cụ thể sẽ hữu ích. Tôi đã đào sâu vào chủ đề này rất nhiều trong vài ngày qua và có rất ít thảo luận về vấn đề này. –
Khi tôi viết câu trả lời của mình, cách đây 8 năm, tìm kiếm đó thực sự là một câu trả lời hay nhưng có một chút ngớ ngẩn khi mong đợi nó ở lại như vậy. –