Tôi có nhiều đối tượng với các phương thức yêu cầu quyền truy cập cơ sở dữ liệu. Chúng tôi đang tìm kiếm để có được vào thử nghiệm đơn vị nhưng rất quan tâm để tránh việc sử dụng các đối tượng giả nếu có thể. Tôi tự hỏi nếu có một cách để cấu trúc lại phương thức Validate được hiển thị bên dưới để nó không cần truy cập db. Trong ứng dụng thực tế thường có một chút công bằng hơn nhưng tôi nghĩ rằng ví dụ đơn giản này là đủ.Tránh phụ thuộc cơ sở dữ liệu để kiểm tra đơn vị mà không bị nhái
Chúng tôi sẽ học cách sử dụng các đối tượng mô phỏng nếu cần nhưng có vẻ như rất nhiều chi phí, vì vậy tôi đang tìm kiếm các giải pháp thay thế.
public class Person
{
public string Name;
public string Validate()
{
if (PersonDA.NameExists(Name))
{
return "Name Already Used";
}
}
}
Đảm bảo bạn biết sự khác biệt giữa "kiểm tra đơn vị" và "thử nghiệm tích hợp" và thời điểm sử dụng chúng và những gì chúng phù hợp nhất. –
Đôi khi tôi sử dụng mẫu sau không yêu cầu khung mocking http://www.unit-testing.net/CurrentArticle/How-To-Remove-Data-Dependencies-In-Unit-Tests.html – T123