# Introducing testing in the middle of development, advice?

**URL:** <https://www.ruby-forum.com/t/introducing-testing-in-the-middle-of-development-advice/152217>\
**Category:** Rails\
**Created:** [October 31, 2008, 12:31pm UTC](https://www.ruby-forum.com/t/introducing-testing-in-the-middle-of-development-advice/152217 "2008-10-31T12:31:49Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![comopasta](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/59ef9b/32.png) [@comopasta](https://www.ruby-forum.com/u/comopasta)\
**Post date:** [October 31, 2008, 12:31pm UTC](https://www.ruby-forum.com/t/introducing-testing-in-the-middle-of-development-advice/152217/1 "2008-10-31T12:31:49Z")

</div>

Hi,

I want to get into testing. I really do.  
However I find it problematic to jump over testing when I know my rails  
code is not perfect. I’m not a ror expert yet so most of my energy is  
spent in development.

I have some questions:

- How easy/hard is to introduce rspec in the middle of development, I  
think you have to generate scaffolds with that enable isn’t it? But I  
already have a base without them.

- Is rspec a good choice to start with, specially since focus in on  
learning the framework and trying to implement the planned features?

Actually I have more questions but I don’t know how to formulate them  
😛  
I understand the importance of testing and I want to have it, just don’t  
know where to start, the testing framework, the framework with some  
plugins, rspec, …?

I would also appreciate some hints to make the process easier, for  
example: start by testing your controllers only, then move to something  
else later on, etc.

I’ll be happy to hear from you guys.

Cheers.

---

<div class="post-metadata">

**Author:** ![comopasta](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/59ef9b/32.png) [@comopasta](https://www.ruby-forum.com/u/comopasta)\
**Post date:** [October 31, 2008, 12:57pm UTC](https://www.ruby-forum.com/t/introducing-testing-in-the-middle-of-development-advice/152217/2 "2008-10-31T12:57:26Z")

</div>

> - How easy/hard is to introduce rspec in the middle of development, I  
> think you have to generate scaffolds with that enable isn’t it? But I  
> already have a base without them.

Sorry, can’t help you there, since we implement testing from the  
beginning.  
Just setup an empty project and see, what files rspec generates.  
They’re just ruby code, so you can implement missing files where  
necessary.

> - Is rspec a good choice to start with, specially since focus in on  
> learning the framework and trying to implement the planned features?

We use rspec and are quite happy with it.  
Learning it shouldn’t be more difficult than learning the test  
framework.

> I understand the importance of testing and I want to have it, just don’t  
> know where to start, the testing framework, the framework with some  
> plugins, rspec, …?

I would recommend rspec

> I would also appreciate some hints to make the process easier, for  
> example: start by testing your controllers only, then move to something  
> else later on, etc.

Yes, start with the controllers. They are the crucial point in your  
app,  
where I think the most errors happen.  
Call every single action and make sure, that you get the expected  
response,  
that it renders the right thing or redirects to the right page.  
Make sure, you get the right records and correct content in the  
database  
for all possible parameters.  
Make sure, users have to be logged in and get redirected if they’re  
not.  
Make sure, users can’t access data of other users (Login as user A  
and call a index or show function with the id of user B, make sure  
that this  
redirects or shows an empty page. Same goes (for example) for  
making orders or payments by users.  
Call form actions (create) with invalid data, make sure that generates  
errors  
and nothing goes into the database.

Next are the models. Test for working associations and validations.

Views are difficult to test, especially if you use Ajax.
