-
Notifications
You must be signed in to change notification settings - Fork 0
Simple and succinct unit testing (Ruby)
License
gsinclair/whitestone
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Whitestone: simple and succint unit testing ------------------------------------------- Whitestone is a unit-testing library, a derivative work of Suraj N. Karaputi's "dfect" (http://snk.tuxfamily.org/lib/dfect), v2.1 (called "detest" as of v3.0). Key features: * terse assertion methods * arbitrarily nested tests * colorful and informative console output * custom assertions * an excellent test runner Example of test code, demonstrating many assertions: D "Person" do # setup code run just once D.<< { Person.initialize_tfn_lookup } # setup code run for each test at this level D.< { @p = Person.new("John", "Smith", 49) } D "basic methods" do Eq @p.first_name, "John" Eq @p.last_name, "Smith" Eq @p.age, 49 end D "graceful error message if badly initialized" do E(Person::Error) { Person.new(1, 2, 3) } Mt Whitestone.exception.message, /invalid first name: 1/ end D "equality" do copy = @p.dup T { copy == @p } Eq copy, @p # equivalent to above line end D "interactions with system" do D "tax file number is nil until set" do N @p.tfn F { @p.instance_variable_get :resolved_tfn } @p.resolve_tfn T { @p.instance_variable_get :resolved_tfn } Mt @p.tfn, /\d\d\d-\d\d\d-\d\d\d/ end D "address lookup is cached" do a1 = @p.address a2 = @p.address Id a1, a2 # identical Ko a1, Address end end end # "Person" The assertion methods demonstrated were: T -- assert true F -- assert false N -- assert object is nil Eq -- assert two objects equal Mt -- assert string matches regular expression Id -- assert two objects are identical (same object) E -- assert error is raised Ko -- assert an object is kind_of a class/module Other assertion methods: Ft -- assert two floats are essentially equal C -- assert object is thrown All assertions can be negated by appending an exclamation mark. See http://gsinclair.github.com/whitestone.html for full details (and screenshots).
About
Simple and succinct unit testing (Ruby)
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published