     (success? [this] false)
     (pending? [this] false)
     (error? [this] true)
+    (skipped? [this] false)
+    (container? [this] false))
+
+(defrecord TestSkipped [source reason]
+  TestResult
+    (success? [this] true)
+    (pending? [this] false)
+    (error? [this] false)
+    (skipped? [this] true)
+    (container? [this] false))
+
+(defrecord TestPending [source reason]
+  TestResult
+    (success? [this] true)
+    (pending? [this] true)
+    (error? [this] false)
+    (skipped? [this] false)
     (container? [this] false))
 
 (defn pass [source states]

  {:pre [(example? source)
	 (instance? Throwable throwable)]}
  (TestThrown. source states throwable))

    (success? [this] false)
    (pending? [this] false)
    (error? [this] false)
    (skipped? [this] false)
    (container? [this] false))

(defrecord TestThrown [source states throwable]
