Old Guy New Trick

An old guys journey to learn how to code.

Importance Of Naming Things


Author: John on August 04, 2016

SUMMARY:  A quick look at the importance of using the correct file name format when creating Rspec tests.  In this example I had some issues with the creation of new feature tests and why they wouldn't run when using rspec spec/features/

 

Recently I have been working on improving my knowledge of testing with MiniTest.  I had an opportunity to do some freelance work and was working on a project that uses RSpec.  This particular project used model and controller tests.  I am more a subscriber of model and feature tests.  For some bugs that I needed to work on there were already some model tests in place.  So I worked with those files, fixed the bugs and moved on to a new feature request.  

Like I mentioned earlier, I prefer Feature tests over Controller tests.  So I set out to work in my comfort zone and created a features directory under the existing spec directory.  I then create two feature files in spec/features.  Let's call them visitor_feature.rb and admin_feature.rb.  I wrote out my tests in each file and then went to run the tests using:

rspec spec/features/

Hmmm, whey did I get 0 tests ran and 0 failures?  Oh well, let me move on and run my tests this way:

rspec spec/features/visitor_feature.rb 
rspec spec/features/admin_feature.rb

Ok, those ran and I see the expected failures.  I continued on to wrap up the tests I needed and then the code to make all those tests go green.  When I was done, I ran the entire test suite using rspec spec.  I noticed that my two new feature related tests were not running.

The keen observer may have already seen what my problem was.  I had not used the preferred format of naming my two new feature files.  I should have named them as visitor_spec.rb and admin_spec.rb.  Once I made the file name change, my tests ran as expected when I used either rspec spec/ or rspec spec/features

Ok, before you beat me up, my file names above are just for illustrative purposes.  I normally name my files in a more descriptive way.

Learn Something New Everyday

Last Edited by: John on August 12, 2016