views:

446

answers:

2

I am working with Rails fixtures for testing my rails application. It is all good except one of my database columns is supposed to hold YAML content. But, I am sure how to put the YAML markup I want to load into my database inside the YAML file. Here is an example:

mvnforum:
    name: mvnforum
    abstraction_type: SVN
    url: src: test username: admin #is this possible?
    sourcepath: mvnforum/src/
    webroot:
    codesecure_project: mvnforum

If it is impossible to have YAML inside a YAML file what would be the best why to load this into a database for testing?

+7  A: 

If you want to put YAML code inside a YAML document, you need to treat it like a string:

url: "src: test username: admin"

If you need a multiline string, you can do

mvnforum:
   name: mvnforum
   abstraction_type: SVN
   url: "
src: test\n
username: admin\n
"
   sourcepath: mvnforum/src/
   webroot:
   codesecure_project: mvnforum
JesperE
+3  A: 

You may want to look into using the Factory pattern to replace your fixtures for your tests and use something like Factory Girl.

Take a look at this great article on why you should use a factory over fixtures and the benefits.

mwilliams