Vì vậy, một đồng nghiệp và tôi đang trong một cuộc tranh luận khá nóng. Chúng tôi đang bắt đầu một dự án mới và chúng tôi đang cố gắng sử dụng BDD. Chúng tôi là cả hai lần đầu tiên và không hoàn toàn hiểu những gì thực hành nên được sử dụng. Chúng tôi đã viết một số thông số kỹ thuật và chúng tôi hiện đang triển khai mã. Mọi thứ đang trở nên khá phức tạp vì có rất nhiều tương tác cơ sở dữ liệu. Chúng tôi đang mắc kẹt về cách chúng tôi nên giả lập dữ liệu của chúng tôi. Phương pháp chúng tôi đang thực hiện sẽ yêu cầu chúng tôi thử phương pháp của chúng tôi thay vì dữ liệu của chúng tôi. Sẽ dễ nhất nếu tôi chỉ cho bạn bằng mã ...BDD/TDD mocking dữ liệu một cách khó khăn
public static void AssignLeadToDistributor(int leadId, int distributorId)
{
Lead lead = GetById(leadId);
lead.DistributorId = distributorId;
Save(lead);
}
Về cơ bản, chúng tôi sẽ phải ghi đè GetById() và Save() để trả về dữ liệu giả để chúng tôi kiểm tra điều này. Có vẻ như có ý nghĩa hơn để làm điều đó như sau:
public static void AssignLeadToDistributor(Lead lead, Distributor distributor)
{
lead.DistributorId = distirbutor.Id;
}
Sau đó, chúng tôi chỉ có thể chế nhạo đối tượng của chúng tôi.
Rõ ràng phương pháp thứ hai giúp dễ dàng kiểm tra hơn. Tuy nhiên, đối số là chúng tôi không muốn phải tìm nạp một đối tượng khách hàng tiềm năng và nhà phân phối mới trên mã giao diện người dùng của chúng tôi, vì sẽ dễ dàng hơn khi chuyển các id của đối tượng của chúng tôi. Cắt giảm mã thực tế trong giao diện người dùng của chúng tôi.
Hy vọng tôi đã giải thích đủ rõ.
Các bạn nghĩ sao? Cách nào có ý nghĩa hơn?
Vâng, chắc chắn, Biểu đồ quyết định nhị phân rất tuyệt, nhưng chúng không phải là thứ cuối cùng của thế hệ cuối cùng mà ám chỉ mọi thứ chúng ta biết đã lỗi thời ... Ồ, chờ đã, đừng bận tâm. –