我只是对一个新应用程序进行了一般的增强测试和单元测试,我不确定如何处理应用程序的初始化(例如,加载配置文件,连接到数据库,启动嵌入式python解释器等)。 。

我要测试此初始化过程,并且应用程序中的其他大多数模块都要求初始化成功完成。

某些运行关闭代码的方式也将不胜感激。

我应该怎么做呢?

最佳答案

您打算做的似乎是更多的集成测试而不是单元测试。这不是要精确说明措辞,而是会有所作为。单元测试是在称为夹具的环境中单独隔离的测试方法,仅针对一项测试创建,然后结束然后删除。如果下一种情况需要相同的灯具,则将重新创建灯具的另一个实例。这样做是为了隔离测试,以使一个测试中的错误不会影响后续测试的结果。

通常,一个测试包含三个步骤:

  • 安排-准备装置:实例化要测试的类,可能还需要其他对象
  • Act-调用要测试的方法
  • 声明-验证期望

  • 单元测试通常远离诸如文件和数据库之类的外部资源。而是使用mock objects来满足要测试的类的依赖关系。

    但是,根据应用程序的类型,您可以尝试从应用程序本身运行测试。这不是“纯粹的”单元测试,但无论如何都是有值(value)的,特别是如果在编写代码时没有考虑到单元测试,则可能不够“灵活”以至于无法进行单元测试。

    这需要一种特殊的执行模式,例如带有“-test”参数的参数,它将正常地初始化应用程序,然后调用测试以模拟输入并使用断言来验证应用程序是否按预期反应。同样,如果数据库连接已关闭(如果未删除对象),则有可能调用关闭代码并使用断言进行验证。

    与单元测试相比,此方法有几个缺点:它取决于配置文件(软件可能会因参数而异),数据库(其内容和连接能力),测试不是孤立的...使用配置的默认值并在测试模式下连接到测试数据库可以克服前两个问题。

    关于c++ - 增强测试应用程序初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2004808/

    10-14 16:44
    查看更多