单元测试数据存储

6 unit-testing

假设我有一个方法'storeData(key,data)'和'getData(key)'的接口.我该如何测试具体的实现?我应该检查数据是否在存储介质中正确设置(例如sql数据库),还是应该检查它是否使用getData返回正确的数据?

如果我在数据库中查找数据,感觉就像我也在测试方法的内部,但只检查它是否给出相同的数据后感觉不完整.

Bla*_*rad 0

我认为这取决于数据稍后会发生什么 - 如果您只打算使用storeData和访问数据getData,为什么不一起测试这些方法呢?我想有可能会出现错误,并且弄清楚它是否在storeData或中会稍微困难一些getData,但如果它出现,我认为这是可以接受的风险

  1. 使您的测试更容易实施,并且
  2. 正如你所说,隐藏内部结构

如果使用其他机制从数据库读取数据或将数据插入数据库,那么我会按照您的建议使用 SQL 检查数据库。

@brendan 提出了一个很好的观点 - 无论您决定采用哪种方法,您都将在数据库中插入数据。最好在测试之前和之后清除数据,以确保获得一致的结果。