Rails 3 brings with it ActiveModel.
ActiveModel give you a way to make non-db backed models look like db backed models to your views and controllers. See this post for a good explanation of what using ActiveModel buys you.
ActiveModel gives you a great way to test that your class implements the minimum ActiveModel interface: ActiveModel::Lint::Tests
Check out this gist for the details for using these tests in RSpec:
About the Author