how to test Rails apps without model?

Hi, I am using Rails to develop an application where I do not use a database at all, so I have not defined a model at all, just controllers and views. The application runs fine, but when I try to run functional tests, it tries to connect to the database and fails without running any of my tests.

How do I tell Rails to please not bother with databases during the tests?

Thanks, Arun

Don't load the activerecord framework (There's a thing in environment.rb for controlling which frameworks are loaded). I can't remember if you still need to comment out the require of fixtures in test_help.rb

Fred

I've seen some tests [such as those for the squirrel plugin] that just create their own 'test database' on the fly

arunmehta wrote:

Hi, I am using Rails to develop an application where I do not use a database at all, so I have not defined a model at all, just controllers and views. The application runs fine, but when I try to run functional tests, it tries to connect to the database and fails without running any of my tests.

How do I tell Rails to please not bother with databases during the tests?

Open config/database.yml and configure all the environments to use sqlite3 (or possibly less!).

The database stuff gets pulled in by the file railties/lib/test_help.rb which is included by test/test_helper.rb

The trick is to NOT include the test_help file, but instead copy the lines there which don't require active record or fixtures.

I have no personal experience with it, but your application sounds like a great candidate for Merb (http://merbivore.com/). If you don't need ActiveRecord or a database, why have all that stuff included in your framework? Aren't you just wasting memory?

Don't misunderstand. I think Rails is great, but it really is designed for database-backed applications and sort of assumes you have one.

Many thanks to all the kind folk for their help. I am not opposed to the use of databases, but for my application, i find it far more convenient to use session[:whatever]. Instead of messing with the standard code that rails generates, would it not be simpler to use a database instead of session, so that I can use the standard testing processes of Rails? Is there some way of doing this without the loss of convenience that the session hash provides?

Great question, Robert, about why use Rails at all. Here is an incomplete set of reasons: 1. I teach computing, and need to very easily be able to get others to start using what I am. While Rails books are available at any decent book store in New Delhi, the Merb website http://merbivore.com/ says that Tutorials will be coming soon... 2. I love the structure Rails imposes on students who are learning programming basics by working on my project. 3. Ruby on Rails looks great on a resume. Very important consideration for my students.

I would be delighted to hear of alternatives that beat Ruby on these considerations, while still allowing me to program in Ruby, on which point, I am afraid, there can be no compromise :slight_smile:

Warmly, Arun