Skip to content
Cyril Kato edited this page Nov 5, 2026 · 2 revisions

Fix wiki

Fix writes a specification: what a subject MUST, SHOULD or MAY do, with the words of RFC 2119, and nothing about how the subject is made. The specification is then tested against a subject, each context in a child process, and every expectation gets a result.

require "fix"

Fix :Duck do
  on :swim do
    it MUST eq "Swoosh..."
  end
end

exit(Fix[:Duck].test { Duck.new })

Where to read what

Fix is documented in three places, and this wiki is a fourth that does not repeat them.

You want to… Go to
Learn Fix, page by page, with examples whose output is checked The guide: fixrb.dev/gems/fix/v1/
Look something up: the words, the matchers, the outcomes, the processes The README, every example of which is run by the test suite
Read the API of a class or a method YARD documentation
Understand why Fix is made the way it is, and how its gems fit together This wiki

Pages

  • Testing Semantics — specifying and testing are two acts; Fix keeps them apart.
  • Design Decisions — the choices behind Fix 1, and what each one buys.
  • Architecture — the eight gems, what each one owns, and what happens when a file runs.
  • FAQ — the questions the guide answers in passing, found by their keywords.
  • History — from 0.0.1.pre in 2014 to 1.0.0 in 2026, and what 1.0 changed.
  • Contributing — the rules the code is held to, and how to run the checks.

The pages of this wiki describe Fix 1. They avoid the surface of the API where they can, so that they stay true across the 1.x releases; where they quote it, the README is the reference.

Clone this wiki locally