Class TestTask
Task class for creating and updating test files.
- AppShell
 - 
			
			BakeTask
			
			
			
		 - 
			
TestTask			
			
			
		 
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/Console/Command/Task/TestTask.php
Properties summary
- 
			
$_fixturesprotectedarrayInternal list of fixtures that have been added so far. - 
			
$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.
 - 
			
$classTypespublicarrayclass types that methods can be generated for - 
			
$pathpublicstringpath to TESTS directory - 
			
$taskspublicarrayTasks used. 
Inherited Properties
Method Summary
- 
			
_addFixture() protected
Add class name to the fixture list. Sets the app. or plugin.plugin_name. prefix.
 - 
			
_interactive() protected
Handles interactive baking - 
			
_processController() protected
Process all the models attached to a controller and generate a fixture list.
 - 
			
_processModel() protected
Process a model recursively and pull out all the model names converting them to fixture names.
 - 
			
bake() public
Completes final steps for generating data to create test case. - 
			
buildTestSubject() public
Construct an instance of the class to be tested. So that fixtures can be detected
 - 
			
execute() public
Execution method always used for tasks - 
			
generateConstructor() public
Generate a constructor code snippet for the type and class name - 
			
generateFixtureList() public
Generate the list of fixtures that will be required to run this test based on loaded models.
 - 
			
generateUses() public
Generate the uses() calls for a type & class name - 
			
getBaseType() public
Get the base class and package name for a given type. - 
			
getClassName() public
Get the user chosen Class name for the chosen type - 
			
getObjectType() public
Interact with the user and get their chosen type. Can exit the script. - 
			
getOptionParser() public
get the option parser. - 
			
getRealClassName() public
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.
 - 
			
getTestableMethods() public
Get methods declared in the class given. No parent methods will be returned
 - 
			
getUserFixtures() public
Interact with the user to get additional fixtures they want to use. - 
			
hasMockClass() public
Is a mock class required for this type of test? Controllers require a mock class.
 - 
			
isLoadableClass() public
Check if a class with the given package is loaded or can be loaded. - 
			
mapType() public
Map the types that TestTask uses to concrete types that App::uses can use. - 
			
testCaseFileName() public
Make the filename for the test case. resolve the suffixes for controllers and get the plugin path if needed.
 - 
			
typeCanDetectFixtures() public
Checks whether the chosen type can find its own fixtures. Currently only model, and controller are supported
 
Method Detail
_addFixture() 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() protected ¶
_interactive( string $type = null )
Handles interactive baking
Parameters
- string $type optional null
 
Returns
_processController() 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() 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() 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
buildTestSubject() 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
And instance of the class that is going to be tested.
generateConstructor() 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
Constructor snippets for the thing you are building.
generateFixtureList() public ¶
generateFixtureList( object $subject )
Generate the list of fixtures that will be required to run this test based on loaded models.
Parameters
- object $subject
 - The object you want to generate fixtures for.
 
Returns
Array of fixtures to be included in the test.
generateUses() 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
An array containing used classes
getBaseType() 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
Array of (class, type)
Throws
getClassName() 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
Class name the user chose.
getObjectType() public ¶
getObjectType( )
Interact with the user and get their chosen type. Can exit the script.
Returns
Users chosen type.
getRealClassName() 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
Real class name
getTestableMethods() 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
Array of method names.
getUserFixtures() public ¶
getUserFixtures( )
Interact with the user to get additional fixtures they want to use.
Returns
Array of fixtures the user wants to add.
hasMockClass() 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
isLoadableClass() 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
mapType() 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
Throws
testCaseFileName() 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
filename the test should be created on.
typeCanDetectFixtures() 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
Methods inherited from BakeTask
Properties detail
$baseTypes ¶
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') )
$classTypes ¶
class types that methods can be generated for
array( 'Model' => 'Model', 'Controller' => 'Controller', 'Component' => 'Controller/Component', 'Behavior' => 'Model/Behavior', 'Helper' => 'View/Helper' )