functional tests in symfony n.
Skip this Video
Loading SlideShow in 5 Seconds..
Functional Tests in Symfony PowerPoint Presentation
Download Presentation
Functional Tests in Symfony

Loading in 2 Seconds...

play fullscreen
1 / 17

Functional Tests in Symfony - PowerPoint PPT Presentation

  • Uploaded on

Functional Tests in Symfony. Sayed Ahmed B.Sc. Eng. in Computer Science & Engineering M. Sc. in Computer Science Exploring Computing for 14+ years Functional Tests. to test your application from end to end

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Functional Tests in Symfony' - kalona

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
functional tests in symfony

Functional Tests in Symfony

Sayed Ahmed

B.Sc. Eng. in Computer Science & Engineering

M. Sc. in Computer Science

Exploring Computing for 14+ years

functional tests
Functional Tests
  • 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
automated testing using selenium
Automated Testing using Selenium
    • “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.”
the sfbrowser class
The sfBrowserclass
  • 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
the sfbrowser class1
The sfBrowser 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
the sftestfunctional class
The sfTestFunctionalclass
  • all tasks that generate a module automatically create a basic functional test file:
the request tester with request begin
The Request Tester (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
the response tester
The Response Tester
  • 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)
running functional tests
Running Functional Tests
  • Execute the test file
    • $ phptest/functional/frontend/categoryActionsTest.php
  • Use the test:functional Task
    • $ phpsymfonytest:functional frontend categoryActions
test data
Test Data
  • include(dirname(__FILE__).'/../../bootstrap/functional.php');  
  • $browser = new sfTestFunctional(new sfBrowser());
  • Doctrine_Core::loadData(sfConfig::get('sf_test_dir').'/fixtures');
writing functional tests
Writing Functional Tests
  • Writing functional tests is like playing a scenario in a browser
debugging functional tests
Debugging Functional Tests
  • $browser->with('response')->debug();
  • symfony provides the ~debug|Debug~() method to output the response header and content:
functional tests harness
Functional Tests Harness
  • The test:functional task can also be used to launch all functional tests for an application:
  • $ phpsymfonytest:functionalfrontend
tests harness
Tests Harness
  • there is also a task to launch all tests for a project (unit and functional):
    • $ phpsymfonytest:all