Angular 集成测试可以测试什么,单元测试可以测试什么
Angular what can be tested in the integration test and what in the unit test
通过 Angular CLI 生成组件会创建一个 .spec 文件。那里应该包括集成和单独的测试吗?我如何判断一个测试是否是个人测试。
比如我在测试一个方法,通过Output发出一个值,订阅EventEmmiter,在订阅的时候检查这个值,是单元测试吗?
第二个例子。
我正在测试工具提示显示方法,它是一个 bootstrap 组件,所以这是一个集成测试,因为你需要与另一个组件交互?
第三个例子,
我正在测试一种更改组件中的变量并最终重定向到 router.navigate 的方法,检查路由器是否已重定向到给定地址 - 它是集成测试吗?
我在文档中找不到一个答案。
标准做法是将您的个人单元测试与您的组件、指令和服务放在 jasmine 规范文件 side-by-side 中。默认情况下,cli 将使用 jasmine 创建这些,它们将 运行 使用业力测试 运行ner.
对于集成测试,在 e2e 文件夹中创建它们。这些将再次默认使用 jasmine,以及 Protractor 测试 运行ner。对于集成测试,建议您使用 page-objects 抽象出大部分页面交互,以保持测试的可读性和高抽象级别。
澄清
集成测试将测试您的 Angular 应用与其他层(例如 Rest 或 GraphQL 后端)的集成。如果您要测试 angular 应用程序中组件的集成,这将是 "deep unit" 只要它不需要前端应用程序之外的任何固定装置。如果这个深度单元测试是您正在寻找的,请将它们放在规范文件中,并 运行 与您的单元测试一起使用。
Generating a component via Angular CLI creates a .spec file. Should
integration and individual tests be included there?
请注意,规范文件实际上是 optional。但在任何情况下,无论您如何定义应用程序中的接缝,您通常都不希望将集成测试与单元测试相结合。那是因为他们通常 运行 出于不同的原因,在不同的时间,在不同的环境中。话虽如此,它们之间的唯一区别可能是使用具体实现注入模拟诗句。
How can I tell if
a test is individual or not.
这个问题以及您的其他问题取决于您在 testing-purist 范围内的位置以及您如何将其与您的发展现实联系起来。例如,Roy Osherove 将 "unit" 定义为:
这意味着任何设计合理的 non-trivial 应用程序都需要进行一定程度的集成。但有一点是肯定的:如果您的测试依赖于数据库连接、网络可用性、API/Service、文件系统或任何其他不稳定的依赖项,那么它绝对是一个集成测试。
通过 Angular CLI 生成组件会创建一个 .spec 文件。那里应该包括集成和单独的测试吗?我如何判断一个测试是否是个人测试。
比如我在测试一个方法,通过Output发出一个值,订阅EventEmmiter,在订阅的时候检查这个值,是单元测试吗?
第二个例子。 我正在测试工具提示显示方法,它是一个 bootstrap 组件,所以这是一个集成测试,因为你需要与另一个组件交互?
第三个例子, 我正在测试一种更改组件中的变量并最终重定向到 router.navigate 的方法,检查路由器是否已重定向到给定地址 - 它是集成测试吗?
我在文档中找不到一个答案。
标准做法是将您的个人单元测试与您的组件、指令和服务放在 jasmine 规范文件 side-by-side 中。默认情况下,cli 将使用 jasmine 创建这些,它们将 运行 使用业力测试 运行ner.
对于集成测试,在 e2e 文件夹中创建它们。这些将再次默认使用 jasmine,以及 Protractor 测试 运行ner。对于集成测试,建议您使用 page-objects 抽象出大部分页面交互,以保持测试的可读性和高抽象级别。
澄清
集成测试将测试您的 Angular 应用与其他层(例如 Rest 或 GraphQL 后端)的集成。如果您要测试 angular 应用程序中组件的集成,这将是 "deep unit" 只要它不需要前端应用程序之外的任何固定装置。如果这个深度单元测试是您正在寻找的,请将它们放在规范文件中,并 运行 与您的单元测试一起使用。
Generating a component via Angular CLI creates a .spec file. Should integration and individual tests be included there?
请注意,规范文件实际上是 optional。但在任何情况下,无论您如何定义应用程序中的接缝,您通常都不希望将集成测试与单元测试相结合。那是因为他们通常 运行 出于不同的原因,在不同的时间,在不同的环境中。话虽如此,它们之间的唯一区别可能是使用具体实现注入模拟诗句。
How can I tell if a test is individual or not.
这个问题以及您的其他问题取决于您在 testing-purist 范围内的位置以及您如何将其与您的发展现实联系起来。例如,Roy Osherove 将 "unit" 定义为:
这意味着任何设计合理的 non-trivial 应用程序都需要进行一定程度的集成。但有一点是肯定的:如果您的测试依赖于数据库连接、网络可用性、API/Service、文件系统或任何其他不稳定的依赖项,那么它绝对是一个集成测试。