Class TestTask
Task class for creating and updating test files.
- AppShell
- BakeTask
- TestTask
Copyright: Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: License (http://www.opensource.org/licenses/mit-license.php)
Location: Cake/Console/Command/Task/TestTask.php
Properties summary
-
$_fixtures
protectedarray
Internal list of fixtures that have been added so far. -
$classTypes
publicarray
class types that methods can be generated for -
$path
publicstring
path to TESTS directory -
$tasks
publicarray
Tasks used.
Inherited Properties
Method Summary
-
_addFixture() protected
Add classname 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 classname -
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 & classname -
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 classname 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 )
Generate a constructor code snippet for the type and classname
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.
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 & classname
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
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 classname
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
$classTypes ¶
class types that methods can be generated for
array( 'Model' => 'Model', 'Controller' => 'Controller', 'Component' => 'Controller/Component', 'Behavior' => 'Model/Behavior', 'Helper' => 'View/Helper' )