我需要在这个问题上扮演一个恶魔倡导者,因为由于缺乏经验我无法很好地捍卫它。这是交易,我从概念上得到了单元测试和集成测试之间的区别。当专门关注持久性方法和存储库时,单元测试可能会通过Moq之类的框架使用模拟,以断言所搜索的订单已按预期返回。
假设我已经建立了以下单元测试:
[TestMethod]
public void GetOrderByIDTest()
{
//Uses Moq for dependency for getting order to make sure
//ID I set up in 'Arrange' is same one returned to test in 'Assertion'
}
因此,如果我设置好OrderIdExpected = 5
并且我的模拟对象返回5
了ID,那么我的测试就会通过。我知道了。我对代码进行了单元测试,以确保我的代码瓶坯返回期望的对象和ID,而不返回其他内容。
我将得到的参数是这样的:
“为什么不跳过单元测试并进行集成测试呢?这是一起测试数据库存储过程和代码的重要性。当最终我想知道数据库是否调用时,进行单元测试和集成测试似乎是多余的工作。我知道测试需要花费更长的时间,但是无论如何都必须运行和测试它们,所以对我来说,两者都显得毫无意义。只需对重要问题进行测试。”
我可以用诸如以下的教科书定义来捍卫它:“嗯,这是一个集成测试,我们需要将代码作为单元测试和yada,yada,yada分别进行测试。”这种情况是一种纯粹的实践解释与现实的对比正在消失。有时我会碰到这种情况,如果我无法捍卫最终依赖于外部依赖关系的单元测试代码背后的原因,那我就没有理由了。
非常感谢您对这个问题的任何帮助,谢谢!