TestBase 4.0.2

Package Description

There is a newer version of this package available.
See the version list below for details.
Install-Package TestBase -Version 4.0.2
dotnet add package TestBase --version 4.0.2
<PackageReference Include="TestBase" Version="4.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TestBase --version 4.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

TestBase gets you off to a flying start when unit testing projects with dependencies.
It offers a rich extensible set of fluent assertions and a set of verifiable Fake Ado.Net components, with easy setup and verification.

TestBase.Shoulds

Chainable fluent assertions get you to the point concisely
UnitUnderTest.Action()
.ShouldNotBeNull()
.ShouldContain(expected);
UnitUnderTest.OtherAction()
.ShouldEqualByValue(
new {Id=1, Payload=expectedPayload, Additional=new[]{ expected1, expected2 }}
);

  • ShouldBe(), ShouldMatch(), ShouldNotBe(), ShouldContain(), ShouldNotContain(), ShouldBeEmpty(), ShouldNotBeEmpty(), ShouldAll() and many more
  • ShouldEqualByValue() works with all kinds of object and collections
  • Stream assertions include ShouldContain() and ShouldEqualByValue()

TestBase.FakeDb

Works with Ado.Net and technologies on top of it, including Dapper.

  • fakeDbConnection.SetupForQuery(IEnumerable&lt;TFakeData&gt; )
  • fakeDbConnection.SetupForQuery(IEnumerable&lt;Tuple&lt;TFakeDataForTable1,TFakeDataForTable2&gt;&gt; )
  • fakeDbConnection.SetupForQuery(fakeData, new[] {""FieldName1"", FieldName2""})
  • fakeDbConnection.SetupForExecuteNonQuery(rowsAffected)
  • fakeDbConnection.ShouldHaveUpdated(""tableName"", [Optional] fieldList, whereClauseField)
  • fakeDbConnection.ShouldHaveSelected(""tableName"", [Optional] fieldList, whereClauseField)
  • fakeDbConnection.ShouldHaveUpdated(""tableName"", [Optional] fieldList, whereClauseField)
  • fakeDbConnection.ShouldHaveDeleted(""tableName"", whereClauseField)
  • fakeDbConnection.ShouldHaveInvoked(cmd => predicate(cmd))
  • fakeDbConnection.ShouldHaveXXX().ShouldHaveParameter(""name"", value)
  • fakeDbConnection.Verify(x=>x.CommandText.Matches(""Insert [case] .*"") &amp;&amp; x.Parameters[""id""].Value==1)

TestBase.TestBase&lt;T&gt; AutoMocksAndFakes

is in development and currently works non-recursively. It auto-constructs the UnitUnderTest.
It identifies constructor dependencies by name and type, looking in the following places:

  1. Fields in the TestFixture class
  2. Entries in the Mocks[] or Fake[] dictionaries
  3. Finally it creates a Mock (if it's a mockable type) or a default instance (if its sealed, or value type) for anything that's missing

ChangeLog

4.0.1.0 Port to NetCore
3.0.3.0 Improves FakeDb setup
3.0.x.0 adds and/or corrects missing Shoulds()
2.0.5.0 adds some intellisense and FakeDbConnection.Verify(..., message,args) overload

TestBase gets you off to a flying start when unit testing projects with dependencies.
It offers a rich extensible set of fluent assertions and a set of verifiable Fake Ado.Net components, with easy setup and verification.

TestBase.Shoulds

Chainable fluent assertions get you to the point concisely
UnitUnderTest.Action()
.ShouldNotBeNull()
.ShouldContain(expected);
UnitUnderTest.OtherAction()
.ShouldEqualByValue(
new {Id=1, Payload=expectedPayload, Additional=new[]{ expected1, expected2 }}
);

  • ShouldBe(), ShouldMatch(), ShouldNotBe(), ShouldContain(), ShouldNotContain(), ShouldBeEmpty(), ShouldNotBeEmpty(), ShouldAll() and many more
  • ShouldEqualByValue() works with all kinds of object and collections
  • Stream assertions include ShouldContain() and ShouldEqualByValue()

TestBase.FakeDb

Works with Ado.Net and technologies on top of it, including Dapper.

  • fakeDbConnection.SetupForQuery(IEnumerable&lt;TFakeData&gt; )
  • fakeDbConnection.SetupForQuery(IEnumerable&lt;Tuple&lt;TFakeDataForTable1,TFakeDataForTable2&gt;&gt; )
  • fakeDbConnection.SetupForQuery(fakeData, new[] {""FieldName1"", FieldName2""})
  • fakeDbConnection.SetupForExecuteNonQuery(rowsAffected)
  • fakeDbConnection.ShouldHaveUpdated(""tableName"", [Optional] fieldList, whereClauseField)
  • fakeDbConnection.ShouldHaveSelected(""tableName"", [Optional] fieldList, whereClauseField)
  • fakeDbConnection.ShouldHaveUpdated(""tableName"", [Optional] fieldList, whereClauseField)
  • fakeDbConnection.ShouldHaveDeleted(""tableName"", whereClauseField)
  • fakeDbConnection.ShouldHaveInvoked(cmd => predicate(cmd))
  • fakeDbConnection.ShouldHaveXXX().ShouldHaveParameter(""name"", value)
  • fakeDbConnection.Verify(x=>x.CommandText.Matches(""Insert [case] .*"") &amp;&amp; x.Parameters[""id""].Value==1)

TestBase.TestBase&lt;T&gt; AutoMocksAndFakes

is in development and currently works non-recursively. It auto-constructs the UnitUnderTest.
It identifies constructor dependencies by name and type, looking in the following places:

  1. Fields in the TestFixture class
  2. Entries in the Mocks[] or Fake[] dictionaries
  3. Finally it creates a Mock (if it's a mockable type) or a default instance (if its sealed, or value type) for anything that's missing

ChangeLog

4.0.1.0 Port to NetCore
3.0.3.0 Improves FakeDb setup
3.0.x.0 adds and/or corrects missing Shoulds()
2.0.5.0 adds some intellisense and FakeDbConnection.Verify(..., message,args) overload

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
4.1.4.3 1,567 11/20/2018
4.1.4.1 865 11/16/2018
4.1.3.2 860 10/28/2018
4.1.3.1 831 10/26/2018
4.1.2.7 868 10/24/2018
4.1.2.4 843 10/16/2018
4.1.2.3 1,269 5/22/2018
4.1.2.2 909 5/22/2018
4.1.2.1 923 5/22/2018
4.1.2 945 5/19/2018
4.1.1 966 4/8/2018
4.1.0 922 4/3/2018
4.0.9.2 1,091 3/31/2018
4.0.9.1 976 3/28/2018
4.0.9 1,091 3/23/2018
4.0.8 1,060 3/23/2018
4.0.7 909 3/22/2018
4.0.6.2 936 3/9/2018
4.0.6.1 914 3/7/2018
4.0.5.2 946 3/2/2018
4.0.5 923 3/1/2018
4.0.4.2 957 3/1/2018
4.0.4 923 2/25/2018
4.0.3 946 2/25/2018
4.0.2 901 2/24/2018
4.0.1 967 2/24/2018
3.1.0 1,259 7/24/2016
3.0.8.5 1,011 7/23/2016
3.0.8.3 1,052 4/14/2016
3.0.8.2 996 3/31/2016
3.0.8.1 988 3/30/2016
3.0.8 1,030 3/29/2016
3.0.7.6 1,025 3/14/2016
3.0.7.5 999 3/10/2016
3.0.7.4 1,033 2/11/2016
3.0.7.3 1,023 1/29/2016
3.0.6.2 1,041 1/27/2016
3.0.6.1 1,028 1/26/2016
3.0.5 1,044 1/15/2016
3.0.4 1,032 1/13/2016
3.0.3 1,021 12/28/2015
3.0.2 2,708 12/27/2013
3.0.1.1 1,058 12/23/2013
3.0.1 1,126 11/28/2013
2.0.5 1,090 11/28/2013
2.0.4.1 1,080 11/12/2013
2.0.4 1,100 11/12/2013
2.0.3.1 1,060 11/8/2013
2.0.3 1,112 11/7/2013
2.0.2 1,092 11/7/2013
2.0.1 1,100 11/1/2013
1.0.4 1,091 10/31/2013
1.0.3 1,115 10/23/2013
Show less