测试不存在的代码
Test the code that doesn't exist
TDD 声称我应该先编写测试。假设我想编写一个服务,如果我还没有任何东西,我该如何开始为该服务编写测试呢?第一个测试是什么?尝试实例化服务并获得异常?
PHP Laravel 范例:
class ServiceTest extends TestCase
{
public function testServiceExists()
{
$service = App::make('grid');
}
}
结果:
PHPUnit 5.5.4 by Sebastian Bergmann and contributors.
E 1
/ 1 (100%)
Time: 123 ms, Memory: 14.00MB
There was 1 error:
1) ServiceTest::testServiceExists ReflectionException: Class grid does
not exist
/home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:749
/home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:644
/home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:709
/home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237
/home/supertrall/domains/md.local/laravel/tests/Grid/ServiceTest.php:20
ERRORS! Tests: 1, Assertions: 0, Errors: 1.
你走对了!
TDD 是一种方法论。它需要一套规则,其中之一是red, green, refactor。就是先写测试,通过再重构代码。
- “红色”- 写入失败测试
- ‘绿色’——测试通过
- “重构”——清理你的代码
是的,class 应该存在也可以是一个测试!
关于以下位置的一些信息:
遇到这样的错误在 TDD 中是一件好事。这意味着您需要解决错误才能遇到另一个错误。
在 TDD 中编码时,您按 wishful thinking 编程。换句话说,您在实现组件本身之前编写了一些使用组件的代码。这有助于发现您需要的功能和数据,并且遵循这一发现将使您获得更简单和有用的 API。
尽管 TDD 概念并不难学,但习惯 TDD 的测试先行开发方法既困难又耗时。您走在正确的轨道上,只需阅读更多内容并进行更多测试即可熟悉该方法。
TDD 声称我应该先编写测试。假设我想编写一个服务,如果我还没有任何东西,我该如何开始为该服务编写测试呢?第一个测试是什么?尝试实例化服务并获得异常?
PHP Laravel 范例:
class ServiceTest extends TestCase
{
public function testServiceExists()
{
$service = App::make('grid');
}
}
结果:
PHPUnit 5.5.4 by Sebastian Bergmann and contributors.
E 1 / 1 (100%)
Time: 123 ms, Memory: 14.00MB
There was 1 error:
1) ServiceTest::testServiceExists ReflectionException: Class grid does not exist
/home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:749 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:644 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:709 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237 /home/supertrall/domains/md.local/laravel/tests/Grid/ServiceTest.php:20
ERRORS! Tests: 1, Assertions: 0, Errors: 1.
你走对了!
TDD 是一种方法论。它需要一套规则,其中之一是red, green, refactor。就是先写测试,通过再重构代码。
- “红色”- 写入失败测试
- ‘绿色’——测试通过
- “重构”——清理你的代码
是的,class 应该存在也可以是一个测试!
关于以下位置的一些信息:
遇到这样的错误在 TDD 中是一件好事。这意味着您需要解决错误才能遇到另一个错误。
在 TDD 中编码时,您按 wishful thinking 编程。换句话说,您在实现组件本身之前编写了一些使用组件的代码。这有助于发现您需要的功能和数据,并且遵循这一发现将使您获得更简单和有用的 API。
尽管 TDD 概念并不难学,但习惯 TDD 的测试先行开发方法既困难又耗时。您走在正确的轨道上,只需阅读更多内容并进行更多测试即可熟悉该方法。