【问题标题】:Integration tests design集成测试设计
【发布时间】:2012-04-11 14:18:36
【问题描述】:

我想为我的应用程序编写一些集成测试。我无法找到有关此主题的示例的相关信息,所以我在这里询问。

让我们有一个带有简单 CRUD 场景的控制器。

有创建方法、编辑方法和删除方法。

我的问题是如何设计测试用例。

我在想两种方法来测试它。

1.

  • 测试 1 创建项目 - 只需插入一个项目
  • 测试 2 编辑项目 - 从第一个测试加载项目并进行编辑
  • 测试 3 删除项目 - 删除测试 2 和 3 中使用的项目。

在这种情况下,所有测试都更像是一个大测试用例。

    • 测试 1 创建项目 - 插入一个项目,检查它是否存在并删除它。
    • 测试 2 编辑项目 - 插入项目、加载项目、编辑并删除项目。
    • 测试 3 删除项目 - 插入项目并删除项目

在这种情况下,测试看起来是独立的,但它们有一些重复的部分(插入)

【问题讨论】:

    标签: asp.net-mvc testing integration-testing


    【解决方案1】:

    进行 CRUD(创建、读取、更新、删除)测试以确保系统正在执行 CRUD 活动,例如创建、检索、更新和删除。

    在 CRUD 场景中,测试用例相互依赖,因此要测试 CURD 场景,您需要编写或检查以下内容 -

    第 1 步 - 您是否能够创建或添加数据?

    第 2 步 - 您是否能够读取或访问已保存或插入的数据?

    第 3 步 - 您能否删除数据及其关系。

    您还可以使用一些自动化工具,例如 Watij 或 Selenium。

    【讨论】:

    • 我应该将每个步骤视为一个单独的测试,还是这三个步骤是一个测试?
    • 所有测试用例都是不同的,但它们是相互依赖的。
    【解决方案2】:

    对于您描述的 CRUD 场景,可以使用三个独立的数据库事务及其关联的断言来实现测试。

    第 1 步 - 插入项目

    第 2 步 - 断言项目已成功插入

    第 3 步 - 编辑项目

    第 4 步 - 断言项目已成功编辑

    第 5 步 - 删除项目

    第 6 步 - 断言项目已成功删除

    【讨论】:

    • 所以这六个步骤应该放在一个测试(方法)中?
    • 根据您使用的框架,您可能需要将每个步骤放在单独的方法中以使其具有事务性。例如,如果您使用 Java、Spring 和 JUnit,您可以将每个步骤放在一个方法中,并使用 @Test 和 @Transactional 对其进行注释,以便在构建的验证阶段按顺序执行方法/步骤.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2011-12-08
    • 1970-01-01
    相关资源
    最近更新 更多