Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsmestad/stale_fish
manage test fixtures by keep them updated and accurate
https://github.com/jsmestad/stale_fish
Last synced: 10 days ago
JSON representation
manage test fixtures by keep them updated and accurate
- Host: GitHub
- URL: https://github.com/jsmestad/stale_fish
- Owner: jsmestad
- License: mit
- Created: 2009-06-26T17:01:17.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2022-07-22T05:29:33.000Z (over 2 years ago)
- Last Synced: 2024-10-10T23:48:09.771Z (26 days ago)
- Language: Ruby
- Homepage: http://github.com/jsmestad/stale_fish
- Size: 71.3 KB
- Stars: 28
- Watchers: 4
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.rdoc
- License: LICENSE
Awesome Lists containing this project
README
= Stale Fish
StaleFish is a utility for storing web requests as fixtures, faking web requests, and ensuring fixtures stay fresh by checking request at periodic intervals.
It works at a global level, without modifying code or writing extensive stubs.== NOTICE
1.3.x is a complete rewrite of the StaleFish utility. It is incompatible with previous versions of StaleFish.
== Features
* Manage FakeWeb through StaleFish
* Fixtures are updated based on a per-fixture update interval
* Fixture update interval supports the ActiveSupport relative time DSL (ex. '30.minutes', '2.days', '1.year')
* Configuration file and fixture data is version control friendly
* Specify which fixtures are checked for freshness using :all, :only, & :except arguement options
* Force update of all fixtures regardless of freshness (bypass freshness check)
* Test Framework agnostic (tested with Test::Unit & RSpec)== How To
Simply drop in a YAML file in your application (recommended location: {test/spec}/fixtures/stale_fish.yml) and issue the following commands.
A sample YAML file:
--- !omap
- stale:
- twitter: # fixture name (this must be unique)
file: 'timeline.json' # fixture save location
update_interval: 30.days # update interval
check_against: http://twitter.com/api/timeline # data to update fixture with when stale
request_type: POST # request type to use when updating: GET, POST
update_method: StaleFishFixture.update_me # optional: this method is evaluated for a response instead of hitting the check_against param
last_updated_at: # timestamp of last fixture update (can be left blank)
- gh_commits:
file: 'commits.xml'
update_interval: 3.days
check_against: http://api.github.com/commits.xml
request_type: GET
last_updated_at:Specify one block for every fixture you would like to update. The frequency field takes any relative date included in the ActiveSupport library.
=== RSpec
For a single test add it to a before block
describe UsersController do
before do
StaleFish.update_stale
end
....
endFor all tests add the following to spec_helper.rb
require 'stale_fish'
Spec::Runner.configure do |config|
...
config.before :suite do
StaleFish.update_stale
end
....
end=== Test::Unit
For all tests add the following to test_helper.rb
class Test::Unit::TestCase
...
setup do
StaleFish.update_stale
end
...
end== More Info
View the wiki: http://wiki.github.com/jsmestad/stale_fish
== Thanks
This utility uses FakeWeb, thanks to those contributors for their excellent work.
== Copyright
Copyright (c) 2009-2010 Justin Smestad. See LICENSE for details.