forked from patmaddox/no-peeping-toms
Disables observers during testing, allowing you to write model tests that are completely decoupled from the observer. Also lets you enable observers for a certain block of code, so that you can write observer tests
zdennis/no-peeping-toms
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
no_peeping_toms ============= This plugin disables observers in your specs, so that model specs can run in complete isolation. You can choose to run some code with observers turned on. This is useful when spec'ing an observer. For example, if you write the following observer: class PersonObserver < ActiveRecord::Observer def before_update(person) old_person = Person.find person.id if old_person.name != person.name NameChange.create! :person => person, :old_name => old_person.name, :new_name => person.name end end end You can spec the Person class in complete isolation. describe Person, " when changing a name" do before(:each) do @person = Person.create! :name => "Pat Maddox" end # By default, don't run any observers it "should not register a name change" do lambda { @person.update_attribute :name, "Don Juan Demarco" }.should_not change(NameChange, :count) end # Run only a portion of code with certain observers turned on it "should register a name change with the person observer turned on" do Person.with_observers(:person_observer) do lambda { @person.update_attribute :name, "Don Juan Demarco" }.should change(NameChange, :count).by(1) end lambda { @person.update_attribute :name, "Man Without a Name" }.should_not change(NameChange, :count) end end Copyright (c) 2007 Pat Maddox, released under the MIT license
About
Disables observers during testing, allowing you to write model tests that are completely decoupled from the observer. Also lets you enable observers for a certain block of code, so that you can write observer tests
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Ruby 100.0%