I am writing a library module to handle certain StatementInvalid type AR exceptions. I wish to catch the case where the db adapter in use is not supported by the module. I would like to test this situation and have only a vague idea as to how to proceed. My exception handling method selects the parsing method based on the adapter_name value. def hll_ar_exception(exception) raise exception unless exception.class.to_s = ''ActiveRecord::StatementInvalid'' acan = self.connection.adapter_name case acan when ''MySQL'' hll_parse_mysql when ''PostgreSQL'' hll_parse_postgresql when ''SQLite'' hll_parse_sqlite(exception) else Rails::logger.warn("Adapter #{acan} not supported by hll_ar_exception.") raise exception end end I am thinking about simply opening SQLiteAdapter and overriding the adapter_name method to some arbitrary value for the test. However, it occurs to me that there are probably better ways to do what I am trying to accomplish so I welcome any suggestions on how to proceed. -- Posted via http://www.ruby-forum.com/.
On 11-mrt-2009, at 19:02, James Byrne wrote:> I am thinking about simply opening SQLiteAdapter and overriding the > adapter_name method to some arbitrary value for the test. However, it > occurs to me that there are probably better ways to do what I am > trying > to accomplish so I welcome any suggestions on how to proceed.http://rspec.info/documentation/mocks/stubs.html Stubbing is your newfound friend. gr, bartz