相关疑难解决方法(0)

集成测试所需的数据库数据; 由API调用或使用导入的数据创建?

这个问题或多或少与编程语言无关.然而,由于我现在主要使用Java,所以我将从中绘制示例.我也在考虑OOP的情况,所以如果你想测试一个方法,你需要一个该方法类的实例.

一个核心规则单元测试是,他们应该是自主的,并且可以通过从它的依赖隔离一个类来实现.有几种方法可以做到这一点,这取决于你是否使用IoC注入依赖项(在Java世界中我们有Spring,EJB3和其他提供注入功能的框架/平台)和/或如果你模拟对象(对于Java你有JMockEasyMock)将正在测试的类与其依赖项分开.

如果我们需要测试不同类中的方法组*并看到它们是很好的集成,我们编写集成测试.这是我的问题!

  • 至少在Web应用程序中,状态通常持久存储在数据库中.我们可以使用与单元测试相同的工具来实现与数据库的独立性.但在我看来,我认为有些情况下,不使用数据库进行集成测试会嘲笑太多(但是可以随意反对;根本不使用数据库,这也是一个有效的答案,因为它使问题变得无关紧要).
  • 当您使用数据库进行集成测试时,如何使用数据填充该数据库?我可以看到两种方法:
    • 存储数据库内容以进行集成测试,并在开始测试之前加载它.如果它存储为SQL转储,那么数据库文件,XML或其他东西将会很有趣.
    • 通过API调用创建必要的数据库结构.这些调用可能在您的测试代码中分成几个方法,并且每个方法都可能失败.它可以被视为您的集成测试,依赖于其他测试.

当您需要时,如何确保测试所需的数据库数据?你为什么选择你选择的方法?

请提供一个动机的答案,因为这是有趣的部分所在的动机.请记住,只是说"这是最好的做法!" 这不是一个真正的动机,它只是重复你从别人那里读过或听过的东西.对于这种情况,请解释为什么这是最佳做法.

*我在单元测试的定义中包含一个在同一个类的(相同或其他)实例中调用其他方法的方法,即使它在技术上可能不正确.请随意纠正我,但让我们把它作为一个侧面问题.

testing integration-testing unit-testing mocking

58
推荐指数
4
解决办法
1万
查看次数