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
-
$_fixtures
protectedInternal list of fixtures that have been added so far.array
-
$baseTypes
publicarray
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.
-
$classTypes
publicclass types that methods can be generated forarray
-
$path
publicpath to TESTS directorystring
-
$tasks
publicTasks used.array
Inherited Properties
Method Summary
- _addFixture() protected
Add class name to the fixture list. Sets the app. or plugin.plugin_name. prefix.
- _interactive() protectedHandles 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() publicCompletes 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() publicExecution method always used for tasks
- generateConstructor() publicGenerate 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() 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() 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() publicInteract 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() 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() 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()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
$type
optional 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
CakeException
on 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
ConsoleOptionParser
getRealClassName()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
CakeException
When 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