I’m going through Michael H.'s Rails tutorial, and I am happy to
report
that (as of the end of section 7) I’m able to get things working. (That
said, I skipped the section on automated testing, as Hartl warned that
automated testing is the most likely part of his book to become
outdated.)
There is a heavy emphasis on the “bundle exec rspec spec” tests. I
agree
that testing is a very necessary part of development. As I go through
the
rest of this tutorial, I will continue to test when instructed.
That said, how essential are the “bundle exec rspec spec” tests in most
real world apps? My reasons for possibly not using them or not using
them
as thoroughly as the tutorial does:
- I still feel more comfortable testing by accessing my web site in
the
browser and trying things out as if I were one of my users.
- Creating the tests does add to the workload.
- Garbage in → garbage out: If you don’t write the proper tests, your
results don’t matter but could cause you to needlessly obsess over
something that actually works but you erroneously think is in error, or
you
could think something works when it doesn’t.
After I finish railstutorial.org, I will start my first Ruby on Rails
web
site, which will profile mutual funds and ETFs. How important is it
that I
do the “bundle exec rspec spec” testing as thoroughly as the tutorial
does?
testing is important for when you try to introduce new features down the
road or if you plan on refactoring your code. Its nice to have test
that lets you know you didn’t break stuff. Imagine making a change and
having to check every page in your app not fun and time consuming. If
you are making a small site, personal blog or something then yeah, don’t
worry about it but if you plan on having user that use your product and
you plan on introducing new feature to your project then test
everything. It only helps
Matt
On 16 March 2013 04:21, Jason H., Android developer
[email protected] wrote:
I’m going through Michael H.'s Rails tutorial, and I am happy to report
that (as of the end of section 7) I’m able to get things working. (That
said, I skipped the section on automated testing, as Hartl warned that
automated testing is the most likely part of his book to become outdated.)
Don’t skip it. The fact that the details may change does not alter
the fact that testing is critical. The tutorial will give you the
basics even if the details change over the years.
There is a heavy emphasis on the “bundle exec rspec spec” tests. I agree
that testing is a very necessary part of development. As I go through the
rest of this tutorial, I will continue to test when instructed.
That said, how essential are the “bundle exec rspec spec” tests in most real
world apps? My reasons for possibly not using them or not using them as
thoroughly as the tutorial does:
- I still feel more comfortable testing by accessing my web site in the
browser and trying things out as if I were one of my users.
That is ok when your site has 5 pages. What about when it has 100?
Are you going to manually test everything every time you make a
change.
- Creating the tests does add to the workload.
Only in the short term. In the long term it will pay for itself.
- Garbage in → garbage out: If you don’t write the proper tests, your
results don’t matter but could cause you to needlessly obsess over something
that actually works but you erroneously think is in error, or you could
think something works when it doesn’t.
Obviously true. That just means that you have to do your best to
design the tests well.
After I finish railstutorial.org, I will start my first Ruby on Rails web
site, which will profile mutual funds and ETFs. How important is it that I
do the “bundle exec rspec spec” testing as thoroughly as the tutorial does?
Vitally important. Apart from anything else it will allow you to
sleep at night being reasonably confident that the change you made to
the site today will not have messed up some other aspect of the site
that you had not considered, so you will not wake up to an inbox full
of messages from irate customers complaining.
Colin
On Sat, Mar 16, 2013 at 4:26 AM, Colin L. [email protected]
wrote:
that actually works but you erroneously think is in error, or you could
Vitally important. Apart from anything else it will allow you to
sleep at night being reasonably confident that the change you made to
the site today will not have messed up some other aspect of the site
that you had not considered, so you will not wake up to an inbox full
of messages from irate customers complaining.
Colin
RSpec tests are really quite necessary for a couple of reasons
(there’s a lot more, but these are crucial to me)
- They let you test the various units of your code independent of
other elements, which makes verifying them a lot easier
- They give you a much better insight into your code when it is
failing by providing a better means of seeing which parts actually
fail.
External tests, such as driven from a web driver, are equally essential:
- They ensure that the whole program is working together well
(integration testing)
- They test your program from the point of view of the user
Don’t skip either, in any “real program” – anything you plan on using
beyond a learning exercise. Don’t skip them on your learning exercises
either, really, as it is a habit well engrained.
There are several reasons for this, but to me it involves addressing 3
questions:
- what do you want? (the spec)
- what will having that get you? (the problem this solves)
- how will you know when you have it? (the tests)