Imagine testing a sales order system for an issue involving the UnitPrice and UnitPriceDiscount on the SalesOrderDetail table.

Adventure Works; Tables related to SalesOrderDetail
To create a record in SalesOrderDetail
you need create records in other tables due to foreign key relations. While
your test only cares about 2 columns in 1 table; you have to populate
193 columns in 21 tables!
Noodle takes care of this messy problem. All you have to do is tell Noodle to create a record in SalesOrderDetail with values in UnitPrice and UnitPriceDiscount. Noodle will generate data for the other 191 columns spread across 21 tables.
For example, using Noodle with RubyFit the following table would create two records for the test.
|
SalesOrderDetail |
|
|
UnitPrice |
UnitPriceDiscount |
|
$10 |
$5 |
|
$11 |
$0 |
Noodle makes tests resilient to change
since the minimum amount of coding is required. Consider the example
above, what happens if a Zip code table is added? The RubyFit table
above doesn't need any changes! Noodle will automatically see the
new table and generate data for it.
Noodle will work with Test::Unit,
ZenTest, rSpec, RubyFit. In addition to Ruby, Noodle will also
support IronRuby. Noodle depends on Ramen for Ruby to reflect the
database schema.
Currently Noodle is in the planning and development stage. See Ramen for a taste of things to come.