Permalink
Browse files

Added README. Ported from Codeplex.

  • Loading branch information...
1 parent 32e2f68 commit 2edcb8a287e0604047c2c9963d7315f8ee837f59 @timscott timscott committed May 23, 2012
Showing with 117 additions and 0 deletions.
  1. +117 −0 README.markdown
View
@@ -0,0 +1,117 @@
+## Project Description
+
+The **Should Assertion Library** provides a set of extension methods for test assertions for AAA and BDD style tests. It provides assertions only, and as a result it is Test runner agnostic. The assertions are a direct fork of the [xUnit](http://xunit.codeplex.com) test assertions. This project was born because test runners *Should* be independent of the the assertions!
+
+**Install should from nuget**
+
+ PM> install-package should
+
+The following example shows some of the the assertions that are available for objects, booleans, string, and collections.
+
+ public void Should_assertions()
+ {
+ object obj = null;
+ obj.ShouldBeNull();
+
+ obj = new object();
+ obj.ShouldBeType(typeof(object));
+ obj.ShouldEqual(obj);
+ obj.ShouldNotBeNull();
+ obj.ShouldNotBeSameAs(new object());
+ obj.ShouldNotBeType(typeof(string));
+ obj.ShouldNotEqual("foo");
+
+ obj = "x";
+ obj.ShouldNotBeInRange("y", "z");
+ obj.ShouldBeInRange("a", "z");
+ obj.ShouldBeSameAs("x");
+
+ "This String".ShouldContain("This");
+ "This String".ShouldNotBeEmpty();
+ "This String".ShouldNotContain("foobar");
+
+ false.ShouldBeFalse();
+ true.ShouldBeTrue();
+
+ var list = new List<object>();
+ list.ShouldBeEmpty();
+ list.ShouldNotContain(new object());
+
+ var item = new object();
+ list.Add(item);
+ list.ShouldNotBeEmpty();
+ list.ShouldContain(item);
+ }
+
+
+Should also provides a fluent API. Here are the same assertions as above using the fluent API. Should.Fluent is a direct port of [ShouldIt](http://code.google.com/p/shouldit).
+
+**Install should from nuget**
+
+ PhM> install-package ShouldFluent
+
+ public void Should_fluent_assertions()
+ {
+ object obj = null;
+ obj.Should().Be.Null();
+
+ obj = new object();
+ obj.Should().Be.OfType(typeof(object));
+ obj.Should().Equal(obj);
+ obj.Should().Not.Be.Null();
+ obj.Should().Not.Be.SameAs(new object());
+ obj.Should().Not.Be.OfType<string>();
+ obj.Should().Not.Equal("foo");
+
+ obj = "x";
+ obj.Should().Not.Be.InRange("y", "z");
+ obj.Should().Be.InRange("a", "z");
+ obj.Should().Be.SameAs("x");
+
+ "This String".Should().Contain("This");
+ "This String".Should().Not.Be.Empty();
+ "This String".Should().Not.Contain("foobar");
+
+ false.Should().Be.False();
+ true.Should().Be.True();
+
+ var list = new List<object>();
+ list.Should().Count.Zero();
+ list.Should().Not.Contain.Item(new object());
+
+ var item = new object();
+ list.Add(item);
+ list.Should().Not.Be.Empty();
+ list.Should().Contain.Item(item);
+ };
+
+Here are some additional examples of assertions using the fluent API:
+
+ public void Should_fluent_assertions()
+ {
+ var numbers = new List<int> { 1, 1, 2, 3 };
+ numbers.Should().Contain.Any(x => x == 1);
+ numbers
+ .Should().Count.AtLeast(1)
+ .Should().Count.NoMoreThan(5)
+ .Should().Count.Exactly(4)
+ .Should().Contain.One(x => x > 2);
+
+ var id = new Guid();
+ id.Should().Be.Empty();
+
+ id = Guid.NewGuid();
+ id.Should().Not.Be.Empty();
+
+ var date = DateTime.Now;
+ date1.Should().Be.Today();
+
+ var str = "";
+ str.Should().Be.NullOrEmpty();
+
+ var one = "1";
+ one.Should().Be.ConvertableTo<int>();
+
+ var idString = Guid.NewGuid().ToString();
+ idString.Should().Be.ConvertableTo<Guid>();
+ }

0 comments on commit 2edcb8a

Please sign in to comment.