首页 文章

测试不存在的代码[关闭]

提问于
浏览
0

TDD声称我应该首先编写测试 . 假设我想写一个服务,如果我还没有任何东西,我该如何开始为服务编写测试?什么是第一次测试?尝试实例化服务并获得异常?

基于PHP Laravel的示例:

class ServiceTest extends TestCase
{
    public function testServiceExists()
    {
        $service = App::make('grid');
    }
}

结果:

Sebastian Bergmann和贡献者的PHPUnit 5.5.4 . E 1/1(100%)时间:123毫秒,内存:14.00MB有1个错误:1)ServiceTest :: testServiceExists ReflectionException:类网格不存在/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错误!测试:1,断言:0,错误:1 .

2 回答

  • 1

    在TDD中遇到这样的错误是件好事 . 这意味着您需要解决错误只是为了遇到另一个错误 .

    在TDD中编码时,按wishful thinking进行编程 . 换句话说,在实现组件本身之前,您编写了一些使用组件的代码 . 这有助于发现您需要的功能和数据,并且通过此发现将引导您获得更简单实用的API .

    尽管TDD概念不是很难学习,但是习惯TDD的测试优先开发方法既困难又耗时 . 您已走上正轨,只需阅读更多信息并进行更多测试即可熟悉该方法 .

  • 2

    你是正确的方式!

    TDD是一种方法论 . 它需要一套学科,其中一个是 red, green, refactor . 它是关于首先编写测试,让它通过然后重构代码 .

    • '红色' - 写失败的测试

    • '绿色' - 让测试通过

    • '重构' - 清理你的代码

    是的,一个类应该存在也可能是一个测试!

    关于以下的一些信息:

相关问题