Use LoFuUnit and Moq to automatically Mock
/ Fake
/ Stub
dependencies.
LoFuUnit.AutoMoq and related packages makes it convenient for developers to write tests with collaboration & communication in mind.
An example of a test with LoFuUnit.AutoMoq
, LoFuUnit.NUnit and FluentAssertions:
using System;
using FluentAssertions;
using LoFuUnit.AutoMoq;
using LoFuUnit.NUnit;
using Moq;
using NUnit.Framework;
namespace LoFuUnitDocs
{
public class MoodTests : LoFuTest<MoodIdentifier>
{
string _mood;
[LoFu, Test]
public void Identify_mood_on_mondays()
{
void given_the_current_day_is_monday()
{
var monday = new DateTime(2011, 2, 14);
Use<Mock<ISystemClock>>()
.Setup(x => x.CurrentTime)
.Returns(monday);
}
void when_identifying_my_mood() =>
_mood = Subject.IdentifyMood();
void should_be_pretty_bad() =>
_mood.Should().Be("Pretty bad");
}
}
}
Output:
Identify mood on mondays
given the current day is monday
when identifying my mood
should be pretty bad
The LoFuTest<TSubject>
base class provides auto-mocking capabilities. The generic type parameter defines what kind of subject under test to create.
The Use<TDependency>
method creates a mock that the subject is dependent upon, and it can later be accessed via the The<TDependency>
method.
Use these methods to configure the behavior and verify the interaction with the mocks.
The Subject
property returns an auto-mocked instance of the subject under test.
More documentation is available at https://github.com/hlaueriksson/LoFuUnit