Testing Methods
Last updated
Was this helpful?
Last updated
Was this helpful?
Was this helpful?
It is important to get familiar with TestBox before adventuring into ColdBox testing. Therefore, we suggest you reference the TestBox Docs (https://testbox.ortusbooks.com/primers/testbox-bdd-primer) or the TestBox API Docs (http://apidocs.ortussolutions.com/testbox/current). Below you can see a few of the common methods available to you.
// quick assertion methods
assert( expression, [message] )
expect( actual ).toBe( value )
fail(message)
// Life Cycle Methods
beforeEach( body )
afterEach( body )
aroundEach( body, spec )
// Spec Grouping Methods
describe( title, body, labels, asyncAll, skip )
feature( title, body, labels, asyncAll, skip )
story( title, body, labels, asyncAll, skip )
scenario( title, body, labels, asyncAll, skip )
given( title, body, labels, asyncAll, skip )
when( title, body, labels, asyncAll, skip )
// Spec or Tests
it( title, body, labels, skip )
then( title, body, labels, skip )
// utility methods
console( var, top )
debug( var, deepCopy, label, top )
clearDebugBuffer()
getDebugBuffer()
print( message )
printLn( message )
// mocking methods
makePublic( target, method, newName )
querySim( queryData )
getmockBox( generationPath )
createEmptyMock( className, object, callLogging )
createMock( className, object, clearMethods, callLogging )
prepareMock( object, callLogging )
createStub( callLogging, extends, implements )
getProperty( target, name, scope, defaultValue )
As we have seen that our BaseTestCase
inherits from the BaseSpec
you get all the goodness of TestBox. However, the BaseTestCase
also has a wealth of methods to assist in your testing adventures:
https://apidocs.ortussolutions.com/coldbox/current/?coldbox/system/testing/BaseTestCase.html
Here are some useful methods:
announce(any state, [struct data='[runtime expression]'], [boolean async='false'], [boolean asyncAll='false'], [boolean asyncAllJoin='true'], [any asyncPriority='NORMAL'], [numeric asyncJoinTimeout='0'])
// Getters
getCache(any cacheName='default')
getCacheBox()
getController()
getFlashScope()
getHandlerResults()
getInstance([any name], [struct initArguments='[runtime expression]'], [any dsl])
getInterceptor(any interceptorName)
getLogBox()
getRenderData()
getRenderedContent()
getRequestContext()
getStatusCode()
getUtil()
getWireBox()
// Get Mocking Objects
getMockController()
getMockModel(any name, [boolean clearMethods='false'])
getMockRequestContext([boolean clearMethods='false'], [any decorator])
//Reset the persistence of the unit test coldbox app, basically removes the controller from application scope.
reset([boolean clearMethods='false'], [any decorator])
// Prepare a ColdBox request
setup()
ColdBox also automatically adds several custom matchers to TestBox, so it can help you get nice expectations:
Checks if the ColdBox response object has a matched status code.
expect( event.getResponse() ).toHaveStatus( statusCode )
Expectation for testing against cbValidation
invalid data fields returned in a Restful response by looking into the response object.
expect( event.getResponse() ).toHaveInvalidData( "username", "is required" )
expect( event.getResponse() ).toHaveInvalidData( "role", "is required" )
expect( event.getResponse() ).toHaveInvalidData( "permission", "is not unique" )
expect( event.getResponse() ).toHaveInvalidData( "status", "does not match" )
The expectation for testing if an event returns a relocation.
expect( event ).toRedirectTo( "Main.index" )