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:
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