TestBase.AdoNet
5.0.0
dotnet add package TestBase.AdoNet --version 5.0.0
NuGet\Install-Package TestBase.AdoNet -Version 5.0.0
<PackageReference Include="TestBase.AdoNet" Version="5.0.0" />
paket add TestBase.AdoNet --version 5.0.0
#r "nuget: TestBase.AdoNet, 5.0.0"
// Install TestBase.AdoNet as a Cake Addin
#addin nuget:?package=TestBase.AdoNet&version=5.0.0
// Install TestBase.AdoNet as a Cake Tool
#tool nuget:?package=TestBase.AdoNet&version=5.0.0
TestBase gives you a flying start with
- fluent assertions that are easy to extend
- sharp error messages
- tools to help you test with "heavyweight" dependencies on
- AspNet.Mvc or AspNetCore Contexts
- HttpClient
- Ado.Net
- Streams & Logging
- Mix & match with your favourite test runners and assertions.
TestBase.AdoNet
TestBase.FakeDb
Fake and verify AdoNet queries and commands
- fakeDbConnection.SetupForQuery(IEnumerable<TFakeData>; )
- fakeDbConnection.SetupForQuery(IEnumerable<Tuple<TFakeDataForTable1,TFakeDataForTable2>> )
- fakeDbConnection.SetupForQuery(fakeData, new[] {"FieldName1", FieldName2"})
- fakeDbConnection.SetupForQuerySingleColumn(new []{"1","row2"})
- fakeDbConnection.SetupForQuerySingleScaler("Scalar")
- 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.ShouldHaveExecutedStoredProcedure("name", [Optional] predicate)
- fakeDbConnection.ShouldHaveExecutedStoredProcedureWithParameter("name", predicateOnParameter)
- fakeDbConnection.ShouldHaveXXX().ShouldHaveParameter("name", value)
- fakeDbConnection.Verify(x=>x.CommandText.Matches("Insert [case] .*") && x.Parameters["id"].Value==1)
TestBase.RecordingDb
new RecordingDbConnection(IDbConnection)
helps you profile Ado.Net Db calls
Chainable fluent assertions get you to the point concisely:
UnitUnderTest.Action()
.ShouldNotBeNull()
.ShouldEqualByValueExceptFor(new {Id=1, Descr=expected}, ignoreList )
.Payload
.ShouldMatchIgnoringCase("I expected this")
.Should(someOtherPredicate);
.Items
.ShouldAll(predicate)
.ShouldContain(item)
.ShouldNotContain(predicate)
.Where(predicate)
.SingleOrAssertFail()
.ShouldEqualByValue().ShouldEqualByValueExceptFor(...).ShouldEqualByValueOnMembers()
work with all kinds of object and collections, and report what differed.
string.ShouldMatch(pattern).ShouldNotMatch().ShouldBeEmpty().ShouldNotBeEmpty()
.ShouldNotBeNullOrEmptyOrWhiteSpace().ShouldEqualIgnoringCase()
.ShouldContain().ShouldStartWith().ShouldEndWith().ShouldBeContainedIn().ShouldBeOneOf().ShouldNotBeOneOf()
numeric.ShouldBeBetween().ShouldEqualWithTolerance()....GreaterThan....LessThan...GreaterOrEqualTo ...
ienumerable.ShouldAll().ShouldContain().ShouldNotContain().ShouldBeEmpty().ShouldNotBeEmpty() ...
stream.ShouldHaveSameStreamContentAs().ShouldContain()
value.ShouldBe().ShouldNotBe().ShouldBeOfType().ShouldBeAssignableTo()...
See also
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETFramework 4.5
- ExpressionToCodeLib (>= 2.7.0)
- Newtonsoft.Json (>= 7.0.1)
- TestBase (>= 4.1.4.3)
-
.NETStandard 2.0
- TestBase (>= 4.1.4.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on TestBase.AdoNet:
Package | Downloads |
---|---|
FixtureBase
Don't spend hours writing code to mock a dozen dependencies, and more hours debugging it. Just write your test code, and let FixtureBase create the dependencies for you. FixtureBase constructs your UnitUnderTest to test your codebase end-to-end, with external dependencies auto-faked and automatically injected in just the right place; even constructor dependencies that are several layers deep. You just write your tests: ``` public class FixtureBaseExample : FixtureBaseWithDbAndHttpFor<AUseCase> { [Fact] public void UUTSendsDataToDb() { var newDatum = new Datum{Id=99, Name="New!" }; UnitUnderTest.InsertDb(newDatum); Db.ShouldHaveInserted("Data",newDatum); } [Fact] public void UUTreturnsDataFromDbQuerySingleColumn() { var dbData = new[] { "row1", "row2", "row3", "row4"}; Db.SetUpForQuerySingleColumn(dbData); UnitUnderTest.FromDbStrings().ShouldEqualByValue(dbData); } [Fact] public async Task UUTGetHttpReturnsDataFromService() { var contentFromService = "IGotThis!"; HttpClient .Setup(m => true) .Returns(new HttpResponseMessage(HttpStatusCode.OK) {Content = new StringContent(contentFromService)}); (await UnitUnderTest.GetHttp()).ShouldBe(contentFromService); HttpClient.Verify(x=>x.Method==HttpMethod.Get); } } ``` The included examples demonstrate FixtureBases for applications which depend on Ado.Net IDbConnections and on HttpClient network connections. - To create your own FixtureBase with your own preferred Fakes, see the examples at <https://github.com/chrisfcarroll/ActivateAnything/blob/master/FixtureBase/FixtureExample.cs.md> - For how it's done, see <https://github.com/chrisfcarroll/ActivateAnything/blob/master/FixtureBase/FixtureBase.cs> Construction is done by - [ActivateAnything](https://www.nuget.org/packages/ActivateAnything) Faking is done by - [TestBase.AdoNet](https://www.nuget.org/packages/TestBase.AdoNet) - [TestBase.HttpClient.Fake](https://www.nuget.org/packages/TestBase.HttpClient.Fake) For more tools focussed on cutting the cost of unit testing, see also: - [TestBase](https://www.nuget.org/packages/TestBase) - [TestBase.AspNetCore.Mvc](https://www.nuget.org/packages/TestBase.AspNetCore.Mvc) - [TestBase-Mvc](https://www.nuget.org/packages/TestBase-Mvc) - [TestBase.AdoNet](https://www.nuget.org/packages/TestBase.AdoNet) - [TestBase.HttpClient.Fake](https://www.nuget.org/packages/TestBase.HttpClient.Fake) - [Serilog.Sinks.ListOfString](https://www.nuget.org/packages/Serilog.Sinks.Listofstring) - [Extensions.Logging.ListOfString](https://www.nuget.org/packages/Extensions.Logging.ListOfString) |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.0.0 | 1,164 | 12/20/2018 |
4.1.5 | 1,690 | 11/21/2018 |
4.1.4.3 | 633 | 11/20/2018 |
4.1.2.4 | 616 | 10/16/2018 |
4.1.0 | 745 | 4/3/2018 |
4.0.9 | 926 | 3/23/2018 |
4.0.7 | 781 | 3/22/2018 |
4.0.6.2 | 759 | 3/9/2018 |
4.0.6.1 | 790 | 3/7/2018 |
4.0.5.2 | 766 | 3/2/2018 |
4.0.4 | 762 | 2/25/2018 |
4.0.3 | 832 | 2/25/2018 |
4.0.2 | 680 | 2/24/2018 |
4.0.1 | 779 | 2/24/2018 |