Skip to content

Latest commit

 

History

History
65 lines (48 loc) · 2.21 KB

LoFuUnit.AutoMoq.md

File metadata and controls

65 lines (48 loc) · 2.21 KB

LoFuUnit.AutoMoq

build CodeFactor

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.

Mocks 🦆

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