Totally confused about rails testing.. which tools are for which jobs?
I'm learning Rails after a long time manually testing my own .NET code,
I'm loving what ive seen but i am SO confused about how it all fits together!
So my questions are
1 - Where would i use:
Rspec
Cucumber
Test Unit
Shoulda
Se开发者_StackOverflowlenium (not really a ruby thing but more of a web thing ive heard)
I've sort-of been testing my code with some very basic RSpec on my models and using factory girl..
2 - Do i need all of these tools?
For example could i choose cucumber and factory girl and never have to learn rspec or is cucumber a pretty dsl wrapper for rspec and test unit...
3 - Are any of them usable / have a port on .NET as well?
Thanks!
Daniel
My current stack of Testing tools is:
- Steak, instead of Cucumber.
- Capybara with driver Akephalos, instead of Selenium.
- RSpec
- Machinist2, instead of factory girl.
https://github.com/cavalle/steak
https://github.com/jnicklas/capybara
http://rspec.info/
https://github.com/notahat/machinist
I learned a lot about testing with the book: The Rspec Book, by the Pragmatic Programmers.
http://pragprog.com/
You have more detailed information in this other question:
Rails: Good Rspec2 example usage? (Also: Cucumber, Pickle, Capybara)
For 1)
I do use Rspec for unit and Functional testing.
I do use Cucumber for integration testing. Cucumber uses Capybara or Selenium. I like Cucumber because it enables me to write tests with the customers. They feel implicated and thus give sometimes more details about their expectations.
Selenium could be used as a stand alone app to test your web app directly in your browser.
Many other tools exist, it's really a matter of choice. As you said, fixtures are not used anymore, Factory Girl is one of the best way to create testing data sets.
For 2)
You don't need all these tools, of course. You could even write your tests with the native Rails helpers.
But they provide convenient helpers you can take benefit from. So get the one you prefer. Some, like Cucumber, have extensions (like Pickle), to provide even more helpers.
For 3)
The strength of Rspec, Cucumber, Selenium (those I know) is they can be used to test any app.
I'm curious to listen to other's point of view concerning Ajax testing.
精彩评论