3 people like it.
    Like the snippet!
  
  NUnit assertions with pattern matching
  A simple utility that allows making assertions using potentially complex pattern matches.
  |  1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
 | open NUnit.Framework
let shouldMatch (f : 'a -> bool) (x : 'a) =
    if f x then () 
    else raise <| new AssertionException(sprintf "Unexpected result: %A." x)
[<TestFixture>]
type Test() =
    // concoct some random test scenario
    [<Test>]
    member __.``test scenario``() =
        [1..10]
        |> List.map (fun i -> (i,i % 2 = 0))
        |> List.filter snd
        |> shouldMatch (function (_,true) :: _ -> true | _ -> false)
        
 | 
namespace NUnit
namespace NUnit.Framework
val shouldMatch : f:('a -> bool) -> x:'a -> unit
Full name: Script.shouldMatch
val f : ('a -> bool)
type bool = System.Boolean
Full name: Microsoft.FSharp.Core.bool
val x : 'a
val raise : exn:System.Exception -> 'T
Full name: Microsoft.FSharp.Core.Operators.raise
Multiple items
type AssertionException =
  inherit Exception
  new : message:string -> AssertionException + 1 overload
Full name: NUnit.Framework.AssertionException
--------------------
AssertionException(message: string) : unit
AssertionException(message: string, inner: exn) : unit
val sprintf : format:Printf.StringFormat<'T> -> 'T
Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.sprintf
Multiple items
type TestFixtureAttribute =
  inherit Attribute
  new : unit -> TestFixtureAttribute + 1 overload
  member Arguments : obj[]
  member Categories : IList
  member Category : string with get, set
  member Description : string with get, set
  member Ignore : bool with get, set
  member IgnoreReason : string with get, set
  member TypeArgs : Type[] with get, set
Full name: NUnit.Framework.TestFixtureAttribute
--------------------
TestFixtureAttribute() : unit
TestFixtureAttribute([<System.ParamArray>] arguments: obj []) : unit
Multiple items
type Test =
  new : unit -> Test
  member ( test scenario ) : unit -> unit
Full name: Script.Test
--------------------
type TestAttribute =
  inherit Attribute
  new : unit -> TestAttribute
  member Description : string with get, set
Full name: NUnit.Framework.TestAttribute
--------------------
new : unit -> Test
--------------------
TestAttribute() : unit
member Test.( test scenario ) : unit -> unit
Full name: Script.Test.( test scenario )
Multiple items
type List =
  new : unit -> List
  static member Map : actual:ICollection -> ListMapper
Full name: NUnit.Framework.List
--------------------
type List<'T> =
  | ( [] )
  | ( :: ) of Head: 'T * Tail: 'T list
  interface IEnumerable
  interface IEnumerable<'T>
  member Head : 'T
  member IsEmpty : bool
  member Item : index:int -> 'T with get
  member Length : int
  member Tail : 'T list
  static member Cons : head:'T * tail:'T list -> 'T list
  static member Empty : 'T list
Full name: Microsoft.FSharp.Collections.List<_>
--------------------
List() : unit
val map : mapping:('T -> 'U) -> list:'T list -> 'U list
Full name: Microsoft.FSharp.Collections.List.map
val i : int
val filter : predicate:('T -> bool) -> list:'T list -> 'T list
Full name: Microsoft.FSharp.Collections.List.filter
val snd : tuple:('T1 * 'T2) -> 'T2
Full name: Microsoft.FSharp.Core.Operators.snd
  
  
  More information