Best way to associate data files with particular tests in RSpec / Ruby

Posted by Bill T on Stack Overflow See other posts from Stack Overflow or by Bill T
Published on 2010-05-28T19:43:20Z Indexed on 2010/05/29 13:12 UTC
Read the original article Hit count: 201

Filed under:
|

For my RSpec tests I would to automatically associate data files with each test. To clarify, if my tests each require an xml file as input data and then some xpath statements to validate the responses they get back I would like to externalize the xml and xpath as files and have the testing framework easily associate them with the particular test being run by using the unique ID of the test as the file(s) name. I tried to get this behavior but the solution isn't very clean. I wrote a helper method that takes the value of "description" and combines it with FILE to create a unique identifier which is set into a global variable that other utilities can access. The unique identifier is used to associate the data files I need. I have to call this helper method as the first line of every test, which is ugly.

If I have an RSpec example that looks like this:

describe "Basic functions of this server I'm testing" do
  it "should give me back a response" do
    # Sets a global var to: "my_tests_spec.rb_should_give_me_back_a_response"
    TestHelper::who_am_i __FILE__, description
    ...
  end
end

Is there some better/cleaner/slicker way I can get an unique ID for each test that I could use to associate data files with? Perhaps something build into RSpec I'm unaware of?

Thank you, -Bill

© Stack Overflow or respective owner

Related posts about ruby

Related posts about rspec