Tôi đang cố gắng để có được mocks làm việc, cho một sự thay đổi, và đã tự hỏi, nơi mọi người thường đặt các lớp giả của họ. Tôi dường như có ba lựa chọn cơ bản không có lựa chọn nào trong số đó có vẻ hiệu quả.Tôi nên đặt mocks của mình ở đâu?
Tôi có thể đưa chúng vào với bản thân ứng dụng, trong trường hợp chúng được gửi cùng với ứng dụng, có vẻ xấu, nhưng chúng có sẵn để kiểm thử đơn vị trong quá trình xây dựng cuối cùng và không có tham chiếu vòng tròn. Điều này có vẻ là cách tiếp cận đơn giản nhất.
Tôi có thể tạo một bản mô phỏng riêng biệt, vì vậy chúng có sẵn trong các bài kiểm tra đơn vị, có thể được sử dụng từ ứng dụng và ứng dụng thử nghiệm, nhưng cuối cùng tôi phải di chuyển tất cả các loại thực tế đến hội đồng này hoặc tạo tham chiếu vòng tròn.
Tôi có thể đặt chúng trong nhóm thử nghiệm, nhưng sau đó chúng không thể được sử dụng từ chính ứng dụng và do đó tôi không thể sử dụng chúng như là một quá trình để xây dựng các phần của ứng dụng.
Tôi có xu hướng thử và sử dụng các mocks để giúp phát triển hệ thống cũng như cho các bộ phận thử nghiệm và do đó tôi thấy khó để biết vị trí đặt chúng. Ngoài ra tất cả các bản phát hành cuối cùng của mã phải chạy qua các quá trình thử nghiệm đơn vị do đó tôi cần các mocks có sẵn trong chu kỳ xây dựng.
Có ai có bất kỳ suy nghĩ nào về nơi đặt các lớp mô phỏng không?
nhờ sự giúp đỡ nào T
Nhìn vào thuộc tính assembly 'InternalsVisibleTo'; nó sẽ cải thiện các tùy chọn của bạn: http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx – Flynn1179
"Tôi có xu hướng thử và sử dụng các mocks để giúp phát triển hệ thống" - điều này có vẻ kỳ quặc. Chắc chắn một lớp nhất định là một phần của ứng dụng, hoặc một phần của các bài kiểm tra; nhưng không phải cả hai. –
@Flynn Tôi đã sử dụng cảm ơn đó. @Tim - Có lẽ đây là nơi tôi đang đi sai. Nó chỉ có vẻ là một sự xấu hổ rất lớn để luôn luôn phải nói chuyện tất cả các cách trở lại thông qua nhiều lớp để phát triển hệ thống của tôi khi tôi có những mocks tuyệt vời chỉ cần chờ đợi để được sử dụng. Bạn có thấy tất cả các lớp của hệ thống của bạn đã được mã hóa trước khi bạn làm việc trên giao diện người dùng không? – Tollo