Blog

Luis Majano

May 18, 2017

Spread the word


Share your thoughts


We are excited to announce the release of TestBox version 2.5.0. To install just do:

1
box install testbox --savedev

To upgrade your current testbox installation just run the following:

1
box uninstall testbox && install testbox --savedev

TestBox 2.5.0 is a minor release with some great new functionality and tons of fixes. You can find the release notes here and the major updates for this release. One of the biggest features for TestBox that was not part of TestBox, was the addition of TestBox Watchers to CommandBox.

TestBox Watchers

CommandBox CLI has added watching capabilities to the testbox namespace. Which means you can now run the following command in the root of your project: testbox watch and it will monitor all your CFCs for changes. If a change is detected, then it will fire the new testbox run command with our CLI reporter.

Life-Cycle Data Binding

We had introduced spec data binding in TestBox for creating dynamic specs and passing dynamic data into them. We have extended this feature into life-cycle methods:

  • beforeEach()
  • afterEach()
  • aroundEach()

You can now pass in an argument called data which is a struct of dynamic data to pass into the life-cycle method. You can then pickup this data in the closure for the life-cycle. Here is a typical example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
describe( "Ability to bind data to life-cycle methods", function(){
    var data = [
        "spec1",
        "spec2"
    ];
 
    for( var thisData in data ){
        describe( "Trying #thisData#", function(){
            beforeEach( data={ myData = thisData }, body=function( currentSpec, data ){
                targetData = arguments.data.myData;
            });
            it( title="should account for life-cycle data binding",
                data={ myData = thisData},
                body=function( data ){
                expect( targetData ).toBe( data.mydata );
            }
    );
 
    afterEach( data={ myData = thisData }, body=function( currentSpec, data ){
        targetData = arguments.data.myData;
        });
    });
    }
 
    for( var thisData in data ){
 
        describe( "Trying around life-cycles with #thisData#", function(){
            aroundEach( data={ myData = thisData }, body = function( spec, suite, data ){
                targetData = arguments.data.myData;
                arguments.spec.body( data=arguments.spec.data );
            });
 
            it( title="should account for life-cycle data binding",
                data={ myData = thisData },
                body=function( data ){
                expect( targetData ).toBe( data.mydata );
            }
            );
        });
 
    }
});

Release Notes

Bugs

  • [TESTBOX-177] - Simple reporter broken on Adobe servers
  • [TESTBOX-180] - HTML Runner links should include directory param
  • [TESTBOX-181] - AsyncAll Errroring on xUnit runner
  • [TESTBOX-183] - the 'type' argument was being ignored if the 'regex' argument was provided and matched the exception data

Improvements

  • [TESTBOX-178] - Remove thread scope from debug stream
  • [TESTBOX-184] - Passing Data to Dynamic Tests via life-cycle methods: around, after, before
  • [TESTBOX-185] - Preserve whitespace in HTML (simple) Reporter
  • [TESTBOX-186] - Include TestBox version in TestResult memento
  • [TESTBOX-187] - Let travis handle upload of api docs and snapshot binaries
  • [TESTBOX-188] - Aggregate suite stats from nested suties

Add Your Comment

Recent Entries

Into the Box 2025 Virtual Tickets Are Now LIVE!

Into the Box 2025 Virtual Tickets Are Now LIVE!

The wait is over! By popular demand, Into the Box 2025 virtual tickets are officially available! Secure your spot today and take advantage of our exclusive early bird pricing before it’s gone!

We’re bringing the community together to push the boundaries of modern development—because change starts with us. We’ve taken the first step, now it’s your turn to evolve and take action!

Maria Jose Herrera
Maria Jose Herrera
April 03, 2025
Security Red Flags in Your ColdFusion App (and how to fix them!)

Security Red Flags in Your ColdFusion App (and how to fix them!)

Security breaches can lead to data leaks, legal issues, and irreversible damage to your company's reputation. Many ColdFusion applications—especially older ones—are vulnerable to cyber threats due to outdated code, weak authentication, and improper security configurations.

When was the last time you audited your ColdFusion application for security risks? If you’re unsure, it’s time for a professional security review.


Top ColdFusion Security Risks – Are You Expose...

Cristobal Escobar
Cristobal Escobar
April 03, 2025
BoxLang 1.0.0 RC3 Has Landed!

BoxLang 1.0.0 RC3 Has Landed!

We are thrilled to announce the release of BoxLang 1.0.0-RC.3, marking a significant milestone in the development of our dynamic JVM language. This release brings a major performance boost and over 100 bug fixes and improvements, making it our most robust release to date. We are now entering the final stretch towards our full release on May 1st, and we need your help to ensure everything is in perfect shape. Please test your applications and report any issues.

Luis Majano
Luis Majano
April 03, 2025