Tôi đang cố gắng tuân theo các phương pháp hay khi viết các bộ thử nghiệm của mình. Nửa chừng tôi nhận ra rằng iam chi tiêu rất nhiều (nhất) của thời gian của tôi trên các đối tượng Fake ... Hầu hết các thử nghiệm của tôi làm điều gì đó như thế nàyKiểm tra đơn vị với hàng giả hoặc mocks?
public interface ITemplateRepository
{
string get GetGenericTemplate {get;}
}
public FakeTemplateRepository : ITemplateRepository
{
public string GetGenericTemplate()
{
return "<xml>Complex</xml>";
}
}
[Test]
public void CanGetGenericTemplate()
{
ITemplateRepository rep = new FakeTemplateRepository();
Assert.IsNotNull(rep.GetGenericTemplate());
}
[Test]
public void GetGenericTemplateContains()
{
ITemplateRepository rep = new FakeTemplateRepository();
Assert.IsTrue(rep.GetGenericTemplate().StartsWith("<xml>"));
}
Tôi thực sự thấy mình dành rất nhiều thời gian trên FakeTemplateRepository, đảm bảo nó trả lại nội dung thực tế tôi đã mong đợi. đây là một điều xấu?
Đây có phải là Thử nghiệm đơn vị hợp lệ không? Thử nghiệm đơn vị phải nhanh chóng và đơn giản, phải không? Nhưng thành thực mà nói, tôi không chắc lắm, một điều chắc chắn là tôi nghĩ về hình dạng và nội dung dữ liệu của mình. Nội dung trong FakeRepository sẽ ít nhiều phản ánh nội dung sản xuất của tôi, mặc dù đọc từ hệ thống tệp, thay vì trong bộ nhớ.
Nếu thực tế những gì tôi đang làm là Kiểm tra tích hợp, thì tôi nên sử dụng mocks như thế nào cho các bài kiểm tra đơn vị của mình?
Nó không có ý nghĩa với tôi (nếu sử dụng Mocks) mà tôi đặt kỳ vọng lên để nó gọi phương thức và trả về một chuỗi? Tôi đang thiếu một cái gì đó nhưng tôi không thấy nhiều giá trị ở đó? Mã sẽ không biên dịch nếu tôi đặt tên phương thức không hợp lệ!
Tôi thực sự thực sự bối rối về toàn bộ sự việc và nhận thức của tôi về thử nghiệm đơn vị hoàn toàn bị mờ ngay bây giờ với tất cả các khái niệm này.
Bất kỳ ai có thể chứng minh bằng một ví dụ siêu siêu đơn giản về cách thức giả mạo và mô phỏng phù hợp với một bộ? Ví dụ: Thử nghiệm đơn vị là gì, thử nghiệm tích hợp là gì?
Cảm ơn
Vâng, cho mã của bạn những gì nó muốn là sẽ không được rất hữu ích kể từ khi thử nghiệm ở dạng đơn giản nhất của nó là, tôi đoán, "đặt nó thông qua nó là dấu chân". –