Presentation is loading. Please wait.

Presentation is loading. Please wait.

F UNCTIONAL T ESTS IN S YMFONY Sayed Ahmed B.Sc. Eng. in Computer Science & Engineering M. Sc. in Computer Science Exploring Computing for 14+ years

Similar presentations


Presentation on theme: "F UNCTIONAL T ESTS IN S YMFONY Sayed Ahmed B.Sc. Eng. in Computer Science & Engineering M. Sc. in Computer Science Exploring Computing for 14+ years"— Presentation transcript:

1 F UNCTIONAL T ESTS IN S YMFONY Sayed Ahmed B.Sc. Eng. in Computer Science & Engineering M. Sc. in Computer Science Exploring Computing for 14+ years sayed@justetc.net http://sayed.justetc.net

2 F UNCTIONAL T ESTS to test your application from end to end from the request made by a browser to the response sent by the server To test all the layers of an application: the routing, the model the actions and the templates Facilitate to test use cases Test scenarios (application usage scenarios) Functional tests in Symfony provide a way to easily describe scenarios Each scenario can then be played automatically over and over again by simulating the experience a user has in a browser

3 A UTOMATED T ESTING USING S ELENIUM http://seleniumhq.org/ “ Selenium automates browsers. That's it. What you do with that power is entirely up to you. Primarily it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web- based administration tasks can (and should!) also be automated as well. ”

4 T HE SF B ROWSER CLASS sfBrowser provides methods that simulates navigation done in a classic browser: get() Gets a URL post() Posts to a URL call() Calls a URL (used for PUT and DELETE methods) back() Goes back one page in the history forward() Goes forward one page in the history reload() Reloads the current page click() Clicks on a link or a button select() selects a radiobutton or checkbox deselect() deselects a radiobutton or checkbox restart() Restarts the browser

5 T HE SF B ROWSER CLASS setHttpHeader() Sets an HTTP header setAuth() Sets the basic authentication credentials setCookie() Set a cookie removeCookie() Removes a cookie clearCookies() Clears all current cookies followRedirect() Follows a redirect

6 SOME USAGE EXAMPLES OF THE SF B ROWSER METHODS

7 T HE SF T EST F UNCTIONAL CLASS all tasks that generate a module automatically create a basic functional test file:

8 T HE ABOVE CODE IS EQUIVALENT TO ( USES : SF T EST F UNCTIONAL ):

9 T HE R EQUEST T ESTER ( WITH (' REQUEST ')-> BEGIN ) isParameter() Checks a request parameter value isFormat() Checks the format of a request isMethod() Checks the method hasCookie() Checks whether the request has a cookie with the given name isCookie() Checks the value of a cookie

10 T HE R ESPONSE T ESTER checkElement() Checks if a response CSS selector match some criteria checkForm() Checks an sfForm form object debug() Prints the response output to ease debug matches() Tests a response against a regexp isHeader() Checks the value of a header isStatusCode() Checks the response status code isRedirected() Checks if the current response is a redirect isValid() Checks if a response is well-formed XML (you also validate the response again its document type be passing true as an argument)

11 R UNNING F UNCTIONAL T ESTS Execute the test file $ php test/functional/frontend/categoryActionsTest.php Use the test:functional Task $ php symfony test:functional frontend categoryActions

12 T EST D ATA include(dirname(__FILE__).'/../../bootstrap/functio nal.php'); $browser = new sfTestFunctional(new sfBrowser()); Doctrine_Core::loadData(sfConfig::get('sf_test_dir ').'/fixtures');

13 W RITING F UNCTIONAL T ESTS Writing functional tests is like playing a scenario in a browser

14 D EBUGGING F UNCTIONAL T ESTS $browser->with('response')->debug(); symfony provides the ~debug|Debug~() method to output the response header and content:

15 F UNCTIONAL T ESTS H ARNESS The test:functional task can also be used to launch all functional tests for an application: $ php symfony test:functional frontend

16 T ESTS H ARNESS there is also a task to launch all tests for a project (unit and functional): $ php symfony test:all

17 R EFERENCES http://www.symfony-project.org/jobeet/1_4/Doctrine/en/09


Download ppt "F UNCTIONAL T ESTS IN S YMFONY Sayed Ahmed B.Sc. Eng. in Computer Science & Engineering M. Sc. in Computer Science Exploring Computing for 14+ years"

Similar presentations


Ads by Google