所以一位同事和我正在进行一场相当激烈的辩论.我们正在开始一个新项目,我们正在尝试使用BDD.我们都是第一次参加,并不完全了解应该使用哪些做法.我们已经编写了一些规范,现在我们正在实现代码.由于存在大量数据库交互,因此事情变得相当棘手.我们被困在如何模拟我们的数据上.我们要进行的方法需要我们模拟我们的方法而不是我们的数据.如果我在代码中向您展示,这是最简单的…
public static void AssignLeadToDistributor(int leadId,int distributorId) { Lead lead = GetById(leadId); lead.DistributorId = distributorId; Save(lead); }
基本上,我们必须覆盖GetById()和Save()以返回模拟数据,以便我们对此进行测试.
这样做似乎更有意义:
public static void AssignLeadToDistributor(Lead lead,Distributor distributor) { lead.DistributorId = distirbutor.Id; }
然后我们可以模拟我们的对象.
显然,第二种方法使测试更容易.但是,争论的焦点是我们不希望在前端代码上获取新的前导和分发器对象,因为只传递对象的id会更容易.减少我们前端的实际代码.
希望我解释得那么好.
你们有什么感想?哪种方式更有意义?