Tôi đã được yêu cầu thực hiện một dự án phụ nhỏ để cung cấp một ứng dụng đơn giản cho một trong những khách hàng của chúng tôi. Thông thường tôi sẽ làm việc với mã back-end nơi tôi có tất cả các nhu cầu thử nghiệm của mình và tôi chưa có niềm vui mơ hồ khi viết thử nghiệm cho GUI, vì vậy tôi không rõ nên cài đặt như thế nào mã kiểm tra và các công cụ cho một EXE.
Bản năng đầu tiên của tôi chỉ đơn giản là bao gồm các thử nghiệm với mã ứng dụng, tuy nhiên điều đó sẽ yêu cầu cung cấp một số phụ thuộc cụ thể cho thử nghiệm, mà tôi đã được hướng dẫn cụ thể không giao hàng cho khách hàng. Tôi cũng không thể vắt kiệt tiền mặt cho một công cụ kiểm tra được xây dựng có mục đích, vì vậy tôi cần sử dụng các công cụ tôi có trong tay ( StoryQ , RhinoMocks và NUnit), thực sự cần quá đủ để kiểm tra hành vi của một ứng dụng GUI đơn giản. Theo như tôi có thể thấy, điều này khiến tôi cố gắng đạt được sự cân bằng tốt giữa việc giữ cho thiết kế thực sự đơn giản, hoặc cố tình quá kỹ thuật vì lợi ích của các thử nghiệm. Có vẻ như tôi đang xây dựng ứng dụng với logic nghiệp vụ trong một thư viện riêng và thử nghiệm với thư viện như tôi thường làm hoặc tìm một số cơ chế khác để cho phép tôi thực thi mà không cần phá vỡ các mô-đun bổ sung mà thiết kế ứng dụng không thật sự cần.
Chỉnh sửa:
Xin lưu ý rằng câu hỏi này là về cách cấu trúc mối quan hệ giữa NUnit và tệp thực thi của tôi - trái ngược với DLL - chứ không phải về cách tách biệt trình bày và logic kinh doanh.
/Biên tập
Vì vậy, câu hỏi của tôi là:
- Có phương pháp cụ thể / được đề xuất nào để định cấu hình ứng dụng GUI đơn giản với các bài kiểm tra đơn vị để cho phép tôi kiểm tra đầy đủ trạng thái và hành vi, sử dụng các công cụ tôi có trong tay và không cần dùng đến kỹ thuật quá mức không?
- Tôi đã bỏ lỡ điều gì đó cơ bản về cách NUnit nên được gọi / cấu hình khi kiểm tra EXE (trái ngược với DLL) chưa?
- Bạn có thể cung cấp hoặc chỉ cho tôi theo hướng các ví dụ về cách đạt được tất cả những điều này?
Tôi nhận ra rằng có thể có nhiều hơn một cách để làm điều này vì vậy tôi đang tìm kiếm các hướng dẫn thực hiện cụ thể dựa trên kinh nghiệm của bạn.