mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-13 12:49:04 +08:00
test files translated
test files translated
This commit is contained in:
@@ -8,4 +8,4 @@
|
|||||||
运行基本和高级模板验收测试
|
运行基本和高级模板验收测试
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
请参阅`apps/advanced/tests/README.md` 和 `apps/basic/tests/README.md` 提供的说明
|
请参阅`apps/advanced/tests/README.md` 和 `apps/basic/tests/README.md`提供的说明。
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
功能测试
|
功能测试
|
||||||
================
|
================
|
||||||
|
|
||||||
> 注意: 此部分在开发环境下使用..
|
> 注意:此部分在开发环境下使用。
|
||||||
|
|
||||||
- http://codeception.com/docs/05-FunctionalTests
|
- http://codeception.com/docs/05-FunctionalTests
|
||||||
|
|
||||||
运行基本和高级模板验收测试
|
运行基本和高级模板验收测试
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
请参阅`apps/advanced/tests/README.md` 和 `apps/basic/tests/README.md`.提供的说明
|
请参阅`apps/advanced/tests/README.md` 和 `apps/basic/tests/README.md`提供的说明。
|
||||||
@@ -1,62 +1,62 @@
|
|||||||
测试
|
测试
|
||||||
=======
|
=======
|
||||||
|
|
||||||
测试是软件开发的一个重要组成部分. 不管我们是否意识到,我们一直在不断地进行测试.
|
测试是软件开发的一个重要组成部分。不管我们是否意识到,我们一直在不断地进行测试。
|
||||||
例如, 当我们在用PHP写一个类的时候, 我们可能用echo或者die语句一步一步简单的调试验证我们实现的代码是否按照最初的计划工作. 在开发web应用的时候, 我们在表单中输入一些测试数据来确保页面能够如预期那样和我们进行交互.
|
例如, 当我们在用PHP写一个类的时候, 我们可能用echo或者die语句一步一步简单的调试验证我们实现的代码是否按照最初的计划工作。在开发web应用的时候,我们在表单中输入一些测试数据来确保页面能够如预期那样和我们进行交互。
|
||||||
|
|
||||||
测试过程可能是自动的,所以每次我们需要验证的时候, 我们只需要调用它就可以测试代码了. 验证代码执行结果是否符合我们的计划叫做测试,测试过程的创建以及进一步执行叫做自动化测试,
|
测试过程可能是自动的,所以每次我们需要验证的时候,我们只需要调用它就可以测试代码了。 验证代码执行结果是否符合我们的计划叫做测试,测试过程的创建以及进一步执行叫做自动化测试,
|
||||||
这是这些测试章节的主要主题.
|
这是这些测试章节的主要主题。
|
||||||
|
|
||||||
|
|
||||||
带着测试进行开发
|
带着测试进行开发
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
测试驱动开发(TDD)和行为驱动开发(BDD)在开始编写实际代码之前,首先通过描述一段代码的行为或将其作为一组场景或测试的全部特征,然后创建符合这些测试预期验证的行为实现.
|
测试驱动开发(TDD)和行为驱动开发(BDD)在开始编写实际代码之前,首先通过描述一段代码的行为或将其作为一组场景或测试的全部特征,然后创建符合这些测试预期验证的行为实现。
|
||||||
|
|
||||||
开发一个功能的过程如下:
|
开发一个功能的过程如下:
|
||||||
|
|
||||||
- 创建一个描述一个功能被实现测试.
|
- 创建一个描述一个功能被实现测试。
|
||||||
- 运行这个测试来确保功能失败.因为这是没有实现之前的预期.
|
- 运行这个测试来确保功能失败.因为这是没有实现之前的预期。
|
||||||
- 编写简单代码确保这个测试通过.
|
- 编写简单代码确保这个测试通过。
|
||||||
- 运行所有测试确保所有测试都通过.
|
- 运行所有测试确保所有测试都通过。
|
||||||
- 优化代码确保测试依然可以通过.
|
- 优化代码确保测试依然可以通过。
|
||||||
|
|
||||||
走完上面的过程之后,为其他功能或者扩展重复上面测试过程.如果功能发生变化,测试也需要跟着变化.
|
走完上面的过程之后,为其他功能或者扩展重复上面测试过程.如果功能发生变化,测试也需要跟着变化。
|
||||||
|
|
||||||
> **Tip**: 如果你觉得你做一些很小很简单的迭代是在浪费时间, 请尝试覆盖更多的测试场景,这样你就可以在执行测试之前做更多的尝试。如果你的调试过多,试着做相反的工作.
|
> **技巧**: 如果你觉得你做一些很小很简单的迭代是在浪费时间,请尝试覆盖更多的测试场景,这样你就可以在执行测试之前做更多的尝试。如果你的调试过多,试着做相反的工作。
|
||||||
|
|
||||||
在做一些具体的实现之前创建测试的原因是,这允许我们后期专注于我们想要的实现,并且可以花费更多的精力到实现细节. 在涉及功能调整的时候,这会使得抽象更合理、测试维护更简单或者使得耦合元件更少.
|
在做一些具体的实现之前创建测试的原因是,这允许我们后期专注于我们想要的实现,并且可以花费更多的精力到实现细节。在涉及功能调整的时候,这会使得抽象更合理、测试维护更简单或者使得耦合元件更少。
|
||||||
|
|
||||||
这种做法的优点如下:
|
这种做法的优点如下:
|
||||||
|
|
||||||
- 在计划和实现发生变更的时候,可以让你在同一时间只专注于一件事情.
|
- 在计划和实现发生变更的时候,可以让你在同一时间只专注于一件事情。
|
||||||
- 更多功能更详细的覆盖测试的结果,如果测试都通过好比再也没有什么问题了.
|
- 更多功能更详细的覆盖测试的结果,如果测试都通过好比再也没有什么问题了。
|
||||||
|
|
||||||
在很长一段时间内,这通常会给你提供一个有效的时间节省.
|
在很长一段时间内,这通常会给你提供一个有效的时间节省。
|
||||||
|
|
||||||
> **Tip**: 如果你想了解更多关于收集软件需求和建模的原则, 最好去学习 [Domain Driven Development (DDD)](https://en.wikipedia.org/wiki/Domain-driven_design).
|
> **技巧**: 如果你想了解更多关于收集软件需求和建模的原则,最好去学习 [Domain Driven Development (DDD)](https://en.wikipedia.org/wiki/Domain-driven_design)。
|
||||||
|
|
||||||
什么时候测试,怎么测试?
|
什么时候测试,怎么测试?
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
在测试的时候,对于一些相对复杂的项目上面的内容是非常有意义的,但对于一些比较简单的项目就做的有些极端了. 适用场景如下:
|
在测试的时候,对于一些相对复杂的项目上面的内容是非常有意义的,但对于一些比较简单的项目就做的有些极端了. 适用场景如下:
|
||||||
|
|
||||||
- 项目已经很大且复杂.
|
- 项目已经很大且复杂。
|
||||||
- 项目需求开始变得复杂起来。项目不断发展.
|
- 项目需求开始变得复杂起来。项目不断发展。
|
||||||
- 项目历时很长.
|
- 项目历时很长。
|
||||||
- 失败的代价非常高.
|
- 失败的代价非常高。
|
||||||
|
|
||||||
在现有的实现行为中进行覆盖测试是非常适合的.
|
在现有的实现行为中进行覆盖测试是非常适合的。
|
||||||
|
|
||||||
- 项目是一个逐步更新的遗产.
|
- 项目是一个逐步更新的遗产。
|
||||||
- 你有一个还没有经过测试的项目要做.
|
- 你有一个还没有经过测试的项目要做。
|
||||||
|
|
||||||
在一些情况下,任何形式的自动化测试都是过于极端的:
|
在一些情况下,任何形式的自动化测试都是过于极端的:
|
||||||
|
|
||||||
- 项目很简单,也不会变得复杂.
|
- 项目很简单,也不会变得复杂。
|
||||||
- 过期不再工作的一次性项目.
|
- 过期不再工作的一次性项目。
|
||||||
|
|
||||||
假如你有很多的时间,在这种情况下进行自动测试也很好.
|
假如你有很多的时间,在这种情况下进行自动测试也很好。
|
||||||
|
|
||||||
深度阅读
|
深度阅读
|
||||||
-------------
|
-------------
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
单元测试
|
单元测试
|
||||||
==========
|
==========
|
||||||
|
|
||||||
> 注意: 此部分在开发环境下使用.
|
> 注意: 此部分在开发环境下使用.
|
||||||
|
|
||||||
单元测试验证了一个单元代码是否正如预期那样运行工作. 在面向对象程序设计中, 最基本的代码单元就是类. 因此,单元测试主要需要验证每个类接口方法的正确性.
|
单元测试验证了一个单元代码是否正如预期那样运行工作。 在面向对象程序设计中,最基本的代码单元就是类。 因此,单元测试主要需要验证每个类接口方法的正确性。
|
||||||
|
|
||||||
也就是说,单元测试验证了方法在给定不同的输入参数的情况下,该方法是否能够返回预期的结果.
|
也就是说,单元测试验证了方法在给定不同的输入参数的情况下,该方法是否能够返回预期的结果。
|
||||||
|
|
||||||
单元测试通常由编写待测试类的人开发.
|
单元测试通常由编写待测试类的人开发。
|
||||||
|
|
||||||
Yii的单元测试框架Codeception基于PHPUnit, Codeception建议遵从PHPUnit的文档的进行开发:
|
Yii的单元测试框架Codeception基于PHPUnit, Codeception建议遵从PHPUnit的文档的进行开发:
|
||||||
|
|
||||||
- [PHPUnit docs starting from chapter 2](http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html).
|
- [PHPUnit docs starting from chapter 2](http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html)。
|
||||||
- [Codeception Unit Tests](http://codeception.com/docs/05-UnitTests).
|
- [Codeception Unit Tests](http://codeception.com/docs/05-UnitTests)。
|
||||||
|
|
||||||
运行基本和高级模板验收测试
|
运行基本和高级模板验收测试
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
|
|
||||||
请参阅`apps/advanced/tests/README.md` 和 `apps/basic/tests/README.md`.提供的说明
|
请参阅`apps/advanced/tests/README.md` 和 `apps/basic/tests/README.md`提供的说明。
|
||||||
|
|
||||||
框架单元测试
|
框架单元测试
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
如果你想运行Yii框架的单元测试
|
如果你想运行Yii框架的单元测试
|
||||||
"[Getting started with Yii 2 development](https://github.com/yiisoft/yii2/blob/master/docs/internals/getting-started.md)".
|
“[Getting started with Yii 2 development](https://github.com/yiisoft/yii2/blob/master/docs/internals/getting-started.md)”。
|
||||||
|
|||||||
Reference in New Issue
Block a user