README.md in resque_spec-0.1.2 vs README.md in resque_spec-0.2.0
- old
+ new
@@ -1,9 +1,9 @@
ResqueSpec
==========
-A simple RSpec and Cucumber matcher for Resque.enqueue, loosely based on
+A simple RSpec and Cucumber matcher for Resque.enqueue and Resque.enqueue_at (from `ResqueScheduler`), loosely based on
[http://github.com/justinweiss/resque_unit](resque_unit).
This should work with Resque v1.6.0 and up and RSpec v1.3.0 and up.
Install
@@ -59,19 +59,61 @@
def recalculate
Resque.enqueue(Person, id, :calculate)
end
end
+ResqueScheduler with Specs
+--------------------------
-== Note on Patches/Pull Requests
+Given this scenario
+ Given a person
+ When I schedule a recalculate
+ Then the person has calculate scheduled
+
+And I write this spec using the `resque_spec` matcher
+
+ describe "#recalculate" do
+ before do
+ ResqueSpec.reset!
+ end
+
+ it "adds person.calculate to the Person queue" do
+ person.recalculate
+ Person.should have_scheduled(person.id, :calculate)
+ end
+ end
+
+(And I take note of the `before` block that is calling `reset!` for every spec)
+
+And I might write this as a Cucumber step
+
+ Then /the (\w?) has (\w?) scheduled/ do |thing, method|
+ thing_obj = instance_variable_get("@#{thing}")
+ thing_obj.class.should have_scheduled(thing_obj.id, method.to_sym)
+ end
+
+Then I write some code to make it pass:
+
+ class Person
+ @queue = :people
+
+ def recalculate
+ Resque.enqueue_at(Time.now + 3600, Person, id, :calculate)
+ end
+ end
+
+Note on Patches/Pull Requests
+=============================
+
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
future version unintentionally.
* Commit, do not mess with rakefile, version, or history.
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.
-== Copyright
+Copyright
+=========
Copyright (c) 2010 Les Hill. See LICENSE for details.