CakePHP shell单元测试

Bra*_*och 5 php unit-testing cakephp cakephp-2.0

我想为我正在创建的CakePHP shell编写单元测试,但是在测试文档中没有提到它们或者是bake:

---------------------------------------------------------------
Bake Tests
Path: /home/brad/sites/farmlogs/app/Test/
---------------------------------------------------------------
---------------------------------------------------------------
Select an object type:
---------------------------------------------------------------
1. Model
2. Controller
3. Component
4. Behavior
5. Helper
Enter the type of object to bake a test for or (q)uit (1/2/3/4/5/q) 
Run Code Online (Sandbox Code Playgroud)

由于CakePHP似乎没有默认的shell测试设置,我的基本shell测试的结构应该是什么样的?

Bra*_*och 6

从Mark Story的AssetCompress和CakeDC的迁移中的示例来看,只需模仿其他测试的目录结构:

Test/
  Case/
    Console/
      Command/
        Task/
          MyShellTaskTest.php
        MyShellTest.php
Run Code Online (Sandbox Code Playgroud)

您的测试只需扩展CakeTestCase对象,就像任何其他通用测试一样:

class MyShellTest extends CakeTestCase {
}
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以覆盖基本shell,就像使用Controller测试一样:

class TestMyShell extends MyShell {
}
Run Code Online (Sandbox Code Playgroud)

没有什么特别的,只要坚持惯例.