On this page
Class TestTask
Task class for creating and updating test files.
- AppShell
- BakeTask 
- TestTask 
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/Console/Command/Task/TestTask.php
Properties summary
- 
    $_fixturesprotectedInternal list of fixtures that have been added so far.array
- 
    $baseTypespublicarrayMapping between packages, and their baseclass + package. This is used to generate App::uses() call to autoload base classes if a developer has forgotten to do so. 
- 
    $classTypespublicclass types that methods can be generated forarray
- 
    $pathpublicpath to TESTS directorystring
- 
    $taskspublicTasks used.array
Inherited Properties
Method Summary
- 
    _addFixture() protectedAdd class name to the fixture list. Sets the app. or plugin.plugin_name. prefix. 
- 
    _interactive() protectedHandles interactive baking
- 
    _processController() protectedProcess all the models attached to a controller and generate a fixture list. 
- 
    _processModel() protectedProcess a model recursively and pull out all the model names converting them to fixture names. 
- 
    bake() publicCompletes final steps for generating data to create test case.
- 
    buildTestSubject() publicConstruct an instance of the class to be tested. So that fixtures can be detected 
- 
    execute() publicExecution method always used for tasks
- 
    generateConstructor() publicGenerate a constructor code snippet for the type and class name
- 
    generateFixtureList() publicGenerate the list of fixtures that will be required to run this test based on loaded models. 
- 
    generateUses() publicGenerate the uses() calls for a type & class name
- 
    getBaseType() publicGet the base class and package name for a given type.
- 
    getClassName() publicGet the user chosen Class name for the chosen type
- 
    getObjectType() publicInteract with the user and get their chosen type. Can exit the script.
- 
    getOptionParser() publicGets the option parser instance and configures it.
- 
    getRealClassName() publicGets the real class name from the cake short form. If the class name is already suffixed with the type, the type will not be duplicated. 
- 
    getTestableMethods() publicGet methods declared in the class given. No parent methods will be returned 
- 
    getUserFixtures() publicInteract with the user to get additional fixtures they want to use.
- 
    hasMockClass() publicIs a mock class required for this type of test? Controllers require a mock class. 
- 
    isLoadableClass() publicCheck if a class with the given package is loaded or can be loaded.
- 
    mapType() publicMap the types that TestTask uses to concrete types that App::uses can use.
- 
    testCaseFileName() publicMake the filename for the test case. resolve the suffixes for controllers and get the plugin path if needed. 
- 
    typeCanDetectFixtures() publicChecks whether the chosen type can find its own fixtures. Currently only model, and controller are supported 
Method Detail
_addFixture()source protected
_addFixture( string $name )Add class name to the fixture list. Sets the app. or plugin.plugin_name. prefix.
Parameters
- 
     string $name
- Name of the Model class that a fixture might be required for.
_interactive()source protected
_interactive( string $type null )Handles interactive baking
Parameters
- 
     string $typeoptional null
- The type of object to bake a test for.
Returns
string|boolean_processController()source protected
_processController( Controller $subject )Process all the models attached to a controller and generate a fixture list.
Parameters
- Controller- $subject
- A controller to pull model names off of.
_processModel()source protected
_processModel( Model $subject )Process a model recursively and pull out all the model names converting them to fixture names.
Parameters
- Model- $subject
- A Model class to scan for associations and pull fixtures off of.
bake()source public
bake( string $type , string $className )Completes final steps for generating data to create test case.
Parameters
- 
     string $type
- Type of object to bake test case for ie. Model, Controller
- 
     string $className
- the 'cake name' for the class ie. Posts for the PostsController
Returns
string|booleanbuildTestSubject()source public
buildTestSubject( string $type , string $class )Construct an instance of the class to be tested. So that fixtures can be detected
Parameters
- 
     string $type
- The Type of object you are generating tests for eg. controller
- 
     string $class
- the Classname of the class the test is being generated for.
Returns
objectAnd instance of the class that is going to be tested.
execute()source public
execute( )Execution method always used for tasks
Overrides
BakeTask::execute()
  generateConstructor()source public
generateConstructor( string $type , string $fullClassName , string $plugin )Generate a constructor code snippet for the type and class name
Parameters
- 
     string $type
- The Type of object you are generating tests for eg. controller
- 
     string $fullClassName
- The Classname of the class the test is being generated for.
- 
     string $plugin
- The plugin name.
Returns
arrayConstructor snippets for the thing you are building.
generateFixtureList()source public
generateFixtureList( CakeObject $subject )Generate the list of fixtures that will be required to run this test based on loaded models.
Parameters
- CakeObject- $subject
- The object you want to generate fixtures for.
Returns
arrayArray of fixtures to be included in the test.
generateUses()source public
generateUses( string $type , string $realType , string $className )Generate the uses() calls for a type & class name
Parameters
- 
     string $type
- The Type of object you are generating tests for eg. controller
- 
     string $realType
- The package name for the class.
- 
     string $className
- The Classname of the class the test is being generated for.
Returns
arrayAn array containing used classes
getBaseType()source public
getBaseType( string $type )Get the base class and package name for a given type.
Parameters
- 
     string $type
- 
     The type the class having a test generated for is in. 
Returns
arrayArray of (class, type)
Throws
CakeExceptionon invalid types.
getClassName()source public
getClassName( string $objectType )Get the user chosen Class name for the chosen type
Parameters
- 
     string $objectType
- Type of object to list classes for i.e. Model, Controller.
Returns
stringClass name the user chose.
getObjectType()source public
getObjectType( )Interact with the user and get their chosen type. Can exit the script.
Returns
stringUsers chosen type.
getOptionParser()source public
getOptionParser( )Gets the option parser instance and configures it.
Returns
ConsoleOptionParsergetRealClassName()source public
getRealClassName( string $type , string $class )Gets the real class name from the cake short form. If the class name is already suffixed with the type, the type will not be duplicated.
Parameters
- 
     string $type
- The Type of object you are generating tests for eg. controller
- 
     string $class
- the Classname of the class the test is being generated for.
Returns
stringReal class name
getTestableMethods()source public
getTestableMethods( string $className )Get methods declared in the class given. No parent methods will be returned
Parameters
- 
     string $className
- Name of class to look at.
Returns
arrayArray of method names.
getUserFixtures()source public
getUserFixtures( )Interact with the user to get additional fixtures they want to use.
Returns
arrayArray of fixtures the user wants to add.
hasMockClass()source public
hasMockClass( string $type )Is a mock class required for this type of test? Controllers require a mock class.
Parameters
- 
     string $type
- The type of object tests are being generated for eg. controller.
Returns
booleanisLoadableClass()source public
isLoadableClass( string $package , string $class )Check if a class with the given package is loaded or can be loaded.
Parameters
- 
     string $package
- The package of object you are generating tests for eg. controller
- 
     string $class
- the Classname of the class the test is being generated for.
Returns
booleanmapType()source public
mapType( string $type , string $plugin )Map the types that TestTask uses to concrete types that App::uses can use.
Parameters
- 
     string $type
- The type of thing having a test generated.
- 
     string $plugin
- The plugin name.
Returns
stringThrows
CakeExceptionWhen invalid object types are requested.
testCaseFileName()source public
testCaseFileName( string $type , string $className )Make the filename for the test case. resolve the suffixes for controllers and get the plugin path if needed.
Parameters
- 
     string $type
- The Type of object you are generating tests for eg. controller
- 
     string $className
- the Classname of the class the test is being generated for.
Returns
stringfilename the test should be created on.
typeCanDetectFixtures()source public
typeCanDetectFixtures( string $type )Checks whether the chosen type can find its own fixtures. Currently only model, and controller are supported
Parameters
- 
     string $type
- The Type of object you are generating tests for eg. controller
Returns
booleanMethods inherited from BakeTask
getPath()source public
getPath( )Gets the path for output. Checks the plugin property and returns the correct path.
Returns
stringPath to output.
startup()source public
startup( )Disable caching and enable debug for baking. This forces the most current database schema to be used.
Properties detail
$baseTypessource
public array
Mapping between packages, and their baseclass + package. This is used to generate App::uses() call to autoload base classes if a developer has forgotten to do so.
array(
    'Model' => array('Model', 'Model'),
    'Behavior' => array('ModelBehavior', 'Model'),
    'Controller' => array('Controller', 'Controller'),
    'Component' => array('Component', 'Controller'),
    'Helper' => array('Helper', 'View')
)$classTypessource
public array
class types that methods can be generated for
array(
    'Model' => 'Model',
    'Controller' => 'Controller',
    'Component' => 'Controller/Component',
    'Behavior' => 'Model/Behavior',
    'Helper' => 'View/Helper'
)© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
 https://api.cakephp.org/2.10/class-TestTask.html