我必须使用很多模拟来测试我的服务层,这样可以吗?

时间:2018-05-02 13:53:37

标签: unit-testing mocking tdd moq service-layer

所以我对测试很陌生,虽然它对我来说很有意义,但有些事情感觉不对。

例如:使用相当多的模拟测试方法是否可以接受?

具体来说,我正在测试我的服务层,它有一个预订日期的方法。 有很多合理性检查,所以看起来有点像这样: (不是实际代码)

public bool BookDate(Person person, int dateId, MyRoom room...)
{
  var date = this.dateRepo.Get(dateId)
  if (date == null) return false

  if (!this.personService.Get(person.id)) return false;

  if (!this.personService.IsValidPerson(person)) return false;

  ... more validations
}

因此,该方法必须进行验证,而这些验证依赖于当然提供的数据(如果它们本身不是接口)。测试不同的案例意味着嘲笑很多。

另外,我经常不得不重复模拟以传递验证并得到我想要测试的实际内容(例如,在方法的下方,传递大量的if)

如何更轻松地测试? 我可以将方法拆分为子方法,但是再次,模拟那些我必须在我的界面中公开它们,尽管它们本身对其他类没用。

0 个答案:

没有答案