Archives du blog

cfug belgique deuxième réunion

Ce mercredi 26.05.2010 j’ai assisté à la deuxième réunion du CFUG de Belgique et je dois dire qu’ils ont fait fort pour une deuxième réunion. Les invités étaient:

  • Raymond Camden auteur du site ColdfusionJedi
  • Ben Nadel gourou Coldfusion et auteur du site bennadel
  • Terrence Ryan Platform Évangéliste chez Adobe et auteur du site terrenceryan
  • Alison Huselid ColdFusion Marketing Product Manager

Ray nous a parlé des extensions pour CFBuilder et de la facilité d’utilisation de celle-ci. Quelques exemples très simples mais démontrant la simplicité et la puissance des extensions. Il nous a aussi montré comment utiliser le cloud d’amazon (impressionnant de simplicité) dans l’upload de documents.

Ben quand à lui, nous a expliqué certaines nouveautés du dernier framework et une façon de gérer les sessions. Il m’a promit de mettre sa présentation en ligne pour lundi avec les exemples.

Terry a fait une présentation sur la nouvelle version de Flash Catalyste et … Whouaw impressionnant ça devrait faciliter l’intégration des designers dans la chaine de développement.

Comme je suis arrivé à la bourre j’ai dû rater le speech d’Alison (pour mon plus grand regret) mais je vais la contacter pour qu’elle réponde à quelques questions sur l’avenir de coldfusion et ce qu’elle compte faire pour le promouvoir.

Pour ma part je serai surement présent à la prochaine réunion du cfug Belgique.

Coldfusion is not dead 😉

Publicités

Tuto sur Coldfusion #2 du moins je croyais

salut,

aujourd’hui je voulais parler du tag cfoutput, un des tag coldfusion les plus important puisqu’il est la base du développement CFML mais comme j’utilise un site qui référence tous les tags CFML en version 7, 8 et 9 je ne vais pas vous refaire une doc sur le tag cfouput. Je vais simplement vous donner le lien vers le site en question.

http://www.cfquickdocs.com ce site est utilisé dans l’aide de cfeclipse et explique tous les tag en donnant un exemple de base et le tout en anglais. Par contre je suis tombé sur un blog ,http://coldfusion-example.blogspot.com, qui référence aussi beaucoup de tags mais donne d’autres exemples le tout en anglais mais facile à comprendre.

Voila, je n’aime pas refaire des docs déjà existante donc je donne les références.

A bientôt

le TDD avec CFUnit

Dans la cadre de mon travail j’ai réalisé une doc de base sur le dev en TDD avec CFUnit, je me suis dit pourquoi pas la partager avec tous le monde.

Usefulness of making unit tests

Just as the picture on the cover of a puzzle defines how the puzzle will look when it’s finished, a unit testing framework is a definition of how the application will work when it is completed. TDD and unit tests are not new topics and are common practices in many programming languages. In TDD, a developer begins by defining how he expects his code to work, and then writes unit tests based on those expectations. The developer does not write any code until the tests are written. Once the tests are completed the developer will frequently run them as he builds an application to receive instant feedback on the code’s current behaviour and progress. This can be a very different paradigm for many ColdFusion developers, who are often not accustomed to testing during the development process.

What is CFUnit

CFUnit is a unit testing framework for ColdFusion (CFML), modelled after the popular JUnit framework. The purpose of CFUnit is to validate the behaviours of your functions and methods frequently executed.

How to install CFUnit

You can download it form this web site : CFUnit

Then decompress it in your web server root directory, (ex: if you use coldfusion with his embedded web server you decompress cfunit in wwwroot).

It’s done

how to make a unit test

Let’s play together with CFUnit…

simple example :   for this example i create a directory « cfunittest » in the root of the web server and inside I create 2 others directories « cfc » and « tests »

  • create a page called Math.cfc in « cfc » directory
  • create a cfc named Math.
  • Insert a function called Sum, this function had two arguments type of « Numeric » and the result is the sum of the arguments. You can take the example below

<cfcomponent displayname= »Math »>

<cffunction name= »Sum » output= »true » returntype= »Numeric »>

<cfargument name= »val1″ type= »Numeric » required= »true »>

<cfargument name= »val2″ type= »Numeric » required= »true »>

<cfreturn val1+val2>

</cffunction>

</cfcomponent>

  • then create the test page called MathTest.cfc in « tests » directory
  • create a cfc named MathTest with the extends « net.sourceforge.cfunit.framework.testcase », that’s depend where you installed the CFUnit framework
  • as you can see, we create an object by calling the component « cfunitTest.cfc.Math »
  • like when we use a component, we call the function and give parameters to the function
  • we invoke the method « assertEquals » and give two arguments named « expected and actual »
  • expected is the value you know is correct
  • actual is the result of the function
  • assertEquals is accessible by the extends

you can take the example below

<cfcomponent displayname= »MathTest » extends= »net.sourceforge.cfunit.framework.TestCase »>

<cffunction name= »TestSum » returntype= »void » access= »public »>

<cfset objmath= » CreateObject(« > <cfset result= » objMath.Sum(1,3) »>

<cfinvoke method= »assertEquals »>

<cfinvokeargument name= »expected » value= »4″/>

<cfinvokeargument name= »actual » value= »#result# »/>

</cfinvoke>

</cffunction>

</cfcomponent>

Now, create the cfm page called TestLauncher.cfm in « cfunittest » directory

  • in this page, created a array that contain the list of test classes you want to run
  • this list is passed to the component invoked by the argument called « test »

You can take the code below

<cfsilent>

<cfset testClasses = ArrayNew(1)>

<cfset ArrayAppend(testClasses, « cfunitTest.tests.MathTest »)>

<cfset suite = CreateObject(« component », « net.sourceforge.cfunit.framework.TestSuite »).init( testClasses )> </cfsilent>

<cfoutput>

<!DOCTYPE HTML PUBLIC « -//W3C//DTD HTML 4.01 Transitional//EN »>

<html>

<head>

<title>CFUnit Test</title>

</head>

<body >

<cfinvoke component= »net.sourceforge.cfunit.framework.TestRunner » method= »run »>

<cfinvokeargument name= »test » value= »#suite# »>

<cfinvokeargument name= »name » value= » »>

</cfinvoke>

</body>

</html>

</cfoutput>

Call the page TestLauncher in your browser

Here is the result in the browser

Now if you replace the code in the page MathTest.cfc by this code :

<cfcomponent displayname= »MathTest » extends= »net.sourceforge.cfunit.framework.TestCase »>

<cffunction name= »TestSum » returntype= »void » access= »public »>

<cfset objMath = CreateObject(« component », »cfunitTest.cfc.Math »)>

<cfset result = objMath.Sum(1,3)>

<cfinvoke method= »assertEquals »>

<cfinvokeargument name= »expected » value= »4″>

<cfinvokeargument name= »actual » value= »#result# »>

</cfinvoke>

</cffunction>

<cffunction name= »TestSum2″ returntype= »void » access= »public »>

<cfset objMath = CreateObject(« component », »cfunitTest.cfc.Math »)>

<cfset result = objMath.Sum(1,3)>

<cfinvoke method= »assertEquals »>

<cfinvokeargument name= »expected » value= »5″>

<cfinvokeargument name= »actual » value= »#result# »>

</cfinvoke>

</cffunction>

</cfcomponent>

As you can see, we add a new test function with an error, the value expected is 5 instead 4

The result is different when you launch the test launch page in your browser

It shows you that a test failed and it gives you the name of it

J’espère que cet article vous à donné une petite idée de ce qu’est le dev en TDD avec CFUnit.

A bientôt pour un nouvel article

Tuto sur Coldfusion #1

Qu’est-ce que Coldfusion ?

je ne vais pas refaire une énième version de l’histoire de Coldfusion donc voici une version sur wikipedia
Où le trouver ?

on peut trouver la dernière version de Coldfusion sur le site d’Adobe ici
Est-ce gratuit ?

La version de développement est gratuit comme ça vous pouvez faire votre site et des tests sans devoir l’acheter. Par contre lors de son utilisation en production vous devez vous acquitter d’une licence qui va de 1353€ à 7800€.

On peut bien sur  ce diriger vers d’autres serveurs comme railo ou Open bluedragon ils sont open source et gratuit ce qui est mieux à mon gout mais je ferai un article plus tard sur railo pour l’expliquer.

Voila mon premier article d’une longue série du moins j’espère.

%d blogueurs aiment cette page :