Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 集成测试只是单元测试,模拟更少吗?_C#_Unit Testing_Integration Testing - Fatal编程技术网

C# 集成测试只是单元测试,模拟更少吗?

C# 集成测试只是单元测试,模拟更少吗?,c#,unit-testing,integration-testing,C#,Unit Testing,Integration Testing,…还是我过于简单化了 如果我过于简单化了,那么集成测试到底是什么?为什么与单元测试相比,集成测试的话题要少得多 *证据-每个标记在StackOverflow上使用的频率: 单元测试-8595 集成测试-557 集成测试是测试多个“单元”的通用术语。这些可以是组件、类、回归或验收测试。这可能就是为什么它不那么流行的原因——因为它可以有多种解释,而单元测试是“最小的可能可测试的东西” 关于mock,如果您正在进行单元测试,您不应该需要太多mock。如果您正在使用许多模拟,这可能是一种“测试气味”,

…还是我过于简单化了

如果我过于简单化了,那么集成测试到底是什么?为什么与单元测试相比,集成测试的话题要少得多

*证据-每个标记在StackOverflow上使用的频率:

  • 单元测试-8595
  • 集成测试-557

  • 集成测试是测试多个“单元”的通用术语。这些可以是组件、类、回归或验收测试。这可能就是为什么它不那么流行的原因——因为它可以有多种解释,而单元测试是“最小的可能可测试的东西”


    关于mock,如果您正在进行单元测试,您不应该需要太多mock。如果您正在使用许多模拟,这可能是一种“测试气味”,表明您正在测试一个与其他类高度耦合的类。

    集成测试是测试多个“单元”的通用术语。这些可以是组件、类、回归或验收测试。这可能就是为什么它不那么流行的原因——因为它可以有多种解释,而单元测试是“最小的可能可测试的东西”


    关于mock,如果您正在进行单元测试,您不应该需要太多mock。如果您正在使用许多模拟,这可能是一种“测试气味”,表明您正在测试一个与其他类高度耦合的类。

    单元测试是单独测试一个组件-您正在测试一个“单元”(通常是单个类或单个方法)

    集成测试是测试两个一起工作的组件-您将看到它们是否能够很好地“集成”在一起

    单元测试是通过模拟一个被测单元与之协作的外部组件来执行的


    在集成测试中,您使用的是真实的测试,而不是模拟。因此,集成测试并不总是那么容易自动化,可能需要一些手动参与。

    单元测试是单独测试一个组件-您正在测试一个“单元”(通常是单个类或单个方法)

    集成测试是测试两个一起工作的组件-您将看到它们是否能够很好地“集成”在一起

    单元测试是通过模拟一个被测单元与之协作的外部组件来执行的


    在集成测试中,您使用的是真实的测试,而不是模拟。因此,集成测试并不总是那么容易自动化,可能需要一些手动参与。

    您可以将单元测试视为开发人员所做的事情,以确保其代码的每个小单元(例如,一种方法)都能按预期工作。集成测试是指当您(或QA测试人员)以集成的方式或更端到端的方式测试多个单元时


    集成测试可能比单元测试更能反映真实世界的用例。

    您可以将单元测试视为开发人员所做的事情,以确保其代码的每个小单元(例如方法)都能按预期工作。集成测试是指当您(或QA测试人员)以集成的方式或更端到端的方式测试多个单元时


    集成测试可能比单元测试更能反映真实世界的用例。

    你是。。。大致正确,但关于这个话题有很多解释。单元测试可以(相对)清晰地定义为对组件进行隔离测试,以获得明确的功能;据我所见,集成测试被定义为“几乎所有其他东西”。这并不是说没有一个明确的地方;即使有良好的接口设计,兼容组件也具有良好且干净的集成功能,并且集成功能可以而且应该独立于单个单元测试进行测试。只是有时候,测试开始模糊单元测试和集成测试之间的界限。至少,您通常可以查看一个测试,并说“这可以分解为更简单的东西吗”,如果不能,您通常可以将其定义为一个单元测试;但是,如果您不能做到这一点,这些测试通常会被归为集成测试。

    您。。。大致正确,但关于这个话题有很多解释。单元测试可以(相对)清晰地定义为对组件进行隔离测试,以获得明确的功能;据我所见,集成测试被定义为“几乎所有其他东西”。这并不是说没有一个明确的地方;即使有良好的接口设计,兼容组件也具有良好且干净的集成功能,并且集成功能可以而且应该独立于单个单元测试进行测试。只是有时候,测试开始模糊单元测试和集成测试之间的界限。至少,您通常可以查看一个测试,并说“这可以分解为更简单的东西吗”,如果不能,您通常可以将其定义为一个单元测试;但是,如果您不能做到这一点,这些测试通常会被归为集成测试。

    单元测试和集成测试都有特定的含义,其他人在这里给出了这些含义。这对于讨论StackOverflow很好

    问题是,几乎所有其他人都使用“单元测试”来概括这两者。你有多少次在甘特图上看到“单元测试”,或者听到有人说,“开发人员会做他们的单元测试……”?这两种情况都不意味着只单独测试单个类。或者,我希望不是

    更糟糕的是,如果你回答“哦,你是说开发人员会做他们的单元和集成测试吗?”那么你会被认为很有趣,因为集成测试是QA人员做的,对吗

    就我个人而言,我并没有严格区分,因为我把它看作是一个连续体(两个真实的类和一些模拟仍然是一个“单元”测试吗?)。我最终感兴趣的是“由开发人员完成的测试”