Info
Version: | 0.3.2 |
Author(s): | Chris F Carroll |
Last Update: | Monday, September 6, 2021 |
.NET Fiddle: | Create the first Fiddle |
Project Url: | https://github.com/chrisfcarroll/ActivateAnything |
NuGet Url: | https://www.nuget.org/packages/FixtureBase |
Install
Install-Package FixtureBase
dotnet add package FixtureBase
paket add FixtureBase
FixtureBase Download (Unzip the "nupkg" after downloading)
Dependencies
.NETFramework 4.5
- ActivateAnything(>= 0.3.0)
- TestBase.AdoNet(>= 4.1.5)
- TestBase.HttpClient.Fake(>= 4.1.4.3)
- ActivateAnything(>= 0.3.0)
- TestBase.AdoNet(>= 4.1.5)
- TestBase.HttpClient.Fake(>= 4.1.4.3)
Tags
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).