Pat Maddox
2007-Mar-13 18:58 UTC
[rspec-users] Opening the singleton class of mocked objects
I wrote a plugin [1] a while ago that lets me do validations on a single AR instance. Instead of defining validations in an AR class, I can define them on a AR instance''s singleton class: class << @video validates_presence_of :title end One of my specs mocks Video.find, and the above code is run on the mock object. When I run the spec, I get the expected undefined method `validates_presence_of'' for #<Class:#<Spec::Mocks::Mock:0x33772e4>> The code works though, I get the expected behavior. I just don''t know how to spec it. Thoughts? Pat [1] http://evang.eli.st/blog/2007/1/20/instance-validations-plugin
Pat Maddox
2007-Mar-14 02:35 UTC
[rspec-users] Opening the singleton class of mocked objects
On 3/13/07, Pat Maddox <pergesu at gmail.com> wrote:> I wrote a plugin [1] a while ago that lets me do validations on a > single AR instance. Instead of defining validations in an AR class, I > can define them on a AR instance''s singleton class: > > class << @video > validates_presence_of :title > end > > One of my specs mocks Video.find, and the above code is run on the > mock object. When I run the spec, I get the expected > > undefined method `validates_presence_of'' for > #<Class:#<Spec::Mocks::Mock:0x33772e4>> > > The code works though, I get the expected behavior. I just don''t know > how to spec it. Thoughts? > > Pat > > [1] http://evang.eli.st/blog/2007/1/20/instance-validations-plugin >btw the obvious way to do this would be to make my mock object a null object, then just stub the valid? method (which is what I ultimately call in that action). I know that my instance validations work fine from other tests, so I can get away with that. However it''s blowing up because the singleton class can''t just accept any method. Pat