Docs for Assertion CFCs inadequate, or functionality just doesn't work?

Description

G'day:
I'm reading this: http://wiki.coldbox.org/wiki/TestBox.cfm#Assertion_Registration, specifically the "CFC Assertions" bit.

I can get Testbox to call in a CFC using this:

But as soon as I put any functions in the CFC, my test run starts erroring with:

Complex object types cannot be converted to simple values.

The expression has requested a variable or an intermediate expression result as a simple value. However, the result cannot be converted to a simple value. Simple values are strings, numbers, boolean values, and date/time values. Queries, arrays, and COM objects are examples of complex values.
The most likely cause of the error is that you tried to use a complex value as a simple one. For example, you tried to use a query variable in a cfif tag.

The error occurred in C:/apps/adobe/ColdFusion/10/cfusion/wwwroot/frameworks/testbox/1.0.0/testbox/system/testing/BaseSpec.cfc: line 338
Called from C:/apps/adobe/ColdFusion/10/cfusion/wwwroot/shared/git/cflib/makeStopwatch/TestMakeStopwatch.cfc: line 5
Called from C:/apps/adobe/ColdFusion/10/cfusion/wwwroot/frameworks/testbox/1.0.0/testbox/system/testing/runners/UnitRunner.cfc: line 52
Called from C:/apps/adobe/ColdFusion/10/cfusion/wwwroot/frameworks/testbox/1.0.0/testbox/system/testing/TestBox.cfc: line 323
Called from C:/apps/adobe/ColdFusion/10/cfusion/wwwroot/frameworks/testbox/1.0.0/testbox/system/testing/TestBox.cfc: line 161
Called from C:/apps/adobe/ColdFusion/10/cfusion/wwwroot/frameworks/testbox/1.0.0/testbox/system/testing/TestBox.cfc: line 94
Called from C:/apps/adobe/ColdFusion/10/cfusion/wwwroot/shared/git/cflib/makeStopwatch/runTests.cfm: line 6
336 : var methodArray = structKeyArray( oAssertions );
337 : for( var thisMethod in methodArray ){
338 : this.$assert[ thisMethod ] = oAssertions[ methodArray ];
339 : }
340 :

TestMakeStopwatch.cfc: line 5 is the call to addAssertions()

Also: the docs for custom assertions say this:

The function should return itself (this) if the actual value passes

You'd better clarify what you want ppl to return when the function is in a CFC, because within a CFC, this refers to the CFC, not the function. I presume you mean this:

??

An example CFC in the docs is probably necessary here.

Activity

Show:
Luis Majano
December 27, 2013, 2:18 PM

Ok, this is now fixed. This was in flux while building the docs and core. It is now updated. Thanks for the keen eye:

http://wiki.coldbox.org/wiki/TestBox.cfm

Adam Cameron
December 27, 2013, 2:59 PM

Good stuff Luis! And the way the custom assertions actually work is a lot better than how the docs had suggested. Nice one.

Luis Majano
December 27, 2013, 3:01 PM

Gracias!! I broke my brain on those ones, I hated every implementation I had before.

Luis Majano
CEO
Ortus Solutions, Corp
www.ortussolutions.com (http://www.ortussolutions.com/)
P/F: 1-888-557-8057
Direct: (909) 248-3408

ColdBox Platform: http://www.coldbox.org (http://www.coldbox.org/)
ContentBox Platform: http://www.gocontentbox.org (http://www.gocontentbox.org/)
Linked In: http://www.linkedin.com/pub/3/731/483

Social: twitter.com/ortussolutions (http://twitter.com/ortussolutions) | twitter.com/coldbox (http://twitter.com/coldbox) | twitter.com/lmajano (http://twitter.com/lmajano) | twitter.com/gocontentbox (http://twitter.com/gocontentbox)

Assignee

Luis Majano

Reporter

Adam Cameron

Labels

None

Components

Fix versions

Affects versions

Priority

Major
Configure