FixtureBase 0.3.0
See the version list below for details.
dotnet add package FixtureBase --version 0.3.0
NuGet\Install-Package FixtureBase -Version 0.3.0
<PackageReference Include="FixtureBase" Version="0.3.0" />
paket add FixtureBase --version 0.3.0
#r "nuget: FixtureBase, 0.3.0"
// Install FixtureBase as a Cake Addin
#addin nuget:?package=FixtureBase&version=0.3.0
// Install FixtureBase as a Cake Tool
#tool nuget:?package=FixtureBase&version=0.3.0
FixtureBase
FixtureBase cuts the cost of unit testing. Intelligent, rule-driven, autofaking fixtures get you straight to your test with all your dependencies setup and ready to go.
Don't spend hours on code to mock a dozen dependencies. Write your test code, let FixtureBase create the dependencies for you. FixtureBase constructs your UnitUnderTest for full end-to-end tests of your codebase, 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
Faking is done by
For more tools focussed on cutting the cost of unit testing, 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
- ActivateAnything (>= 0.3.0)
- TestBase.AdoNet (>= 4.1.5)
- TestBase.HttpClient.Fake (>= 4.1.4.3)
-
.NETStandard 2.0
- ActivateAnything (>= 0.3.0)
- TestBase.AdoNet (>= 4.1.5)
- TestBase.HttpClient.Fake (>= 4.1.4.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
ChangeLog
---------
0.3.0 AnythingActivator.Instances as well as Rules. Breaking: refactored constructors & FixtureBase startup
0.2.2 FixtureBase
0.2.1 ActivateInstance Rule can activate a Func<Type> as well as a Type
0.2.0 ActivateAnything exposes LastActivationTree and LastErrorList after a call to New()
0.1.0.2 fix non-public constructors. ChooseConstructorWith(Most|Fewest)ParametersAttribute.PreferPublic defaults to true.
0.1.0.1 ActivateAnything first release.