当前位置: 首页 > 面试题库 >

在相同的测试用例或单独的测试用例中测试默认值和设置器

莫欣悦
2023-03-14
问题内容

您是否建议在@Test方法中对测试用例进行任何分组,还是每个测试方案都有一个@Test方法?例如,假设有多种方法可以在应用程序中设置上下文。

以下想法可以接受吗?

@Test
public void testContextSetting() {
    // Test default setting
    assert(...)

    // Test setting a context variable
    assert(...)

    ...
}

或者,您宁愿建议这样做,让每个方法都尽可能原子化:

@Test
public void textDefaultSetting() {
    // Test default setting
    assert(...)
}

@Test
public void testSettingContextVar() {
    // Test setting a context variable
    assert(...)

    ...
}

对于任何反馈,我们都表示感谢。


问题答案:

我更喜欢每种方法有一个测试用例。

首先,如果将它们拆分为多个方法,则比查找代码中嵌入的注释要容易得多。大多数IDE都会为您提供方法的摘要,因此,您无需说“我是否测试XYZ边缘情况?”。然后寻找注释,或寻找设置该边缘情况的代码,只需寻找名为的方法setupContextEdgeCaseXYZ()

第二个原因是,如果您有多个案例,一个案例可能会失败,而其他案例则永远不会执行。

 testDefaultCase()
 testInvalidInput()
 testEdgeCase1()
 testEdgeCase2()

使用这种结构,可以更容易地确定输入检查不正确并且边缘情况2处理不当,但其他情况都可以(您可能会发现两个失败的情况相关并且可以更快地诊断问题)。

第三个原因是,您可能会不小心留下前一个测试集的值,而这些值会使后一个测试以不显眼的方式失效。一个简单的例子:

@Test
public void testMyMethod() {
  //test default
  String test = Foo.bar(null);
  assertEquals("foo", test);

  //test case 1
  Foo.bar(aValue);
  //Oops forgot to set value above, this passes regardless of 
  //what the above call does
  assertEquals("foo", test);
}

通过区分大小写,可以避免上述错误,因为这会变成编译错误或警告。



 类似资料:
  • 主要内容:测试套件测试用例是一组条件,测试人员根据这些条件确定软件应用程序是否按照客户的要求工作。测试用例设计包括前提条件,用例名称,输入条件和预期结果。测试用例是第一级操作,源自测试场景。 测试用例提供有关测试策略,测试过程,前提条件和预期输出的详细信息。这些在测试过程中执行,以检查软件应用程序是否正在执行它是否已开发的任务。 编写测试用例是一次性尝试,可以在回归测试时使用。 测试用例通过将缺陷与测试用例ID相关

  • 我有一个方法如下。 我想为下面的方法写两个测试用例。 1) 提交数据的成功事务 2) 具有回滚数据的失败事务 我如何写一个涉及事务的测试用例,并成功和失败?

  • 问题内容: 有没有办法动态创建测试用例?我尝试了以下方法。 ..可以正确创建所有方法(它们显示在并且可以调用),但是unittest的测试检测器也不执行(“ Ran 0 tests in …”) 由于我可能会问错问题-我想实现的目标是: 我有一个文件,其中包含测试数据,输入文件名列表和预期数据(在上述代码中简化为),存储在Python字典中。例如,键是类别,值是测试用例的列表。 目前,我只是遍历所

  • 问题内容: 我正在使用Go和Appengine,现在我想做一些测试案例。 我尝试使用gos标准测试包,文件(均为“ package hello”): 问题:我无法跑步。我得到的最接近的结果是,如果我不对进行任何调用,那将是可行的,这是毫无意义的。:) 问题答案: 一个有趣的发展:从1.8.6版开始,使用服务存根进行测试已通过该软件包集成到SDK中。通过“测试”上下文,这在很大程度上类似于上述内容。

  • 本文向大家介绍如何设计测试用例?什么样子的测试用例是好用例?相关面试题,主要包含被问及如何设计测试用例?什么样子的测试用例是好用例?时的应答技巧和注意事项,需要的朋友参考一下 掌握边界值分析、等价类划分、错误推测等方法来设计测试用例 是一个完备的集合,它能够覆盖所有等价类以及各种边界值;需要从软件功能需求出发,全面地,无遗漏地识别出测试需求;最好是代码覆盖测试也全面的测试

  • 目标 建立一个 lesson8 项目,在其中编写代码。 app.js: 其中有个 fibonacci 接口。fibonacci 的介绍见:http://en.wikipedia.org/wiki/Fibonacci_number 。 fibonacci 函数的定义为 int fibonacci(int n),调用函数的路径是 ‘/fib?n=10’,然后这个接口会返回 ‘55’。函数的行为定义如下