bbv.LambdaTale 2.9.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package bbv.LambdaTale --version 2.9.2                
NuGet\Install-Package bbv.LambdaTale -Version 2.9.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="bbv.LambdaTale" Version="2.9.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add bbv.LambdaTale --version 2.9.2                
#r "nuget: bbv.LambdaTale, 2.9.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install bbv.LambdaTale as a Cake Addin
#addin nuget:?package=bbv.LambdaTale&version=2.9.2

// Install bbv.LambdaTale as a Cake Tool
#tool nuget:?package=bbv.LambdaTale&version=2.9.2                

LambdaTale

LambdaTale NuGet version is a xUnit.net extension for describing each step in a test with natural language.

[!NOTE] This is a fork of xBehave.net. Adam, thank you very much!

CI CodeQL Lint Spell check

Platform support: .NET Standard 2.0 and upwards.

Usage

Install the bbv.LambdaTale NuGet package and start using LambdaTale in your tests. LambdaTale can be used in two different ways: Through a string extension method or a static Spec() method. Both usages are described below.

String Extension Method

An example of using LambdaTale with the x() extension method is given below.

using System.Threading.Tasks;
using LambdaTale;

namespace Your.Tests;

public class SomeFeature
{
    public class OracleService
    {
        public Task<int> Run() => Task.FromResult(42);
    }

    [Scenario]
    public void SimpleDemo(int answer, OracleService sut)
    {
        "Given a magic oracle"
            .x(() => sut = new OracleService());

        "the answer"
            .x(async () => answer = await sut.Run());

        "is always known"
            .x(() => Xunit.Assert.Equal(42, answer));
    }
}

Static Spec Method

An example of using LambdaTale with a C# 6.0 using static directive and the static Spec() method is given below.

using System.Threading.Tasks;
using LambdaTale;
using static LambdaTale.Specifications;

namespace Your.Tests;

public class SomeFeature
{
    public class OracleService
    {
        public Task<int> Run() => Task.FromResult(42);
    }

    [Scenario]
    public void SimpleDemo(int answer, OracleService sut)
    {
        Spec("Given a magic oracle", () => sut = new OracleService());

        Spec("the answer", async () => answer = await sut.Run());

        Spec("is always known", () => Xunit.Assert.Equal(42, answer));
    }
}

Gotchas

The ITestOutputHelper will only write to test steps. Messages written before the first step (e.g. in the constructor, [Background], outside step definitions) will be logged as part of the first step, messages written after the last step (e.g. inside Dispose) will be logged as part of the last step.

Packages

The LambdaTale package depends on the xunit.core package. That means you get only the minimum dependencies required to write and execute LambdaTale scenarios.

Versions

LambdaTale follows the versioning scheme of xUnit.net. xUnit.net and LambdaTale do not follow SemVer and may introduce breaking changes in minor (or even patch) versions. Each minor version of LambdaTale is linked to the equivalent minor version of xUnit.net. The LambdaTale patch version is incremented to the next multiple of 100 each time it is linked to a new xUnit.net patch version. For example, LambdaTale 2.5.0 is linked with xUnit.net 2.5.0, and LambdaTale 2.5.100 is linked with xUnit 2.5.1.

A given LambdaTale patch version may introduce new features, fix bugs, or both.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.9.200 3,595 9/27/2024
2.9.2 6,396 8/7/2024
2.9.1 3,198 7/10/2024
2.9.0 238 7/9/2024
2.8.100 3,753 5/27/2024
2.8.1 1,895 4/30/2024
2.8.0 113 4/30/2024
2.7.100 2,603 4/12/2024
2.7.0 5,127 2/16/2024
2.6.600 5,400 1/16/2024
2.6.500 1,371 1/8/2024
2.6.300 8,876 12/11/2023
2.6.201 470 12/4/2023
2.6.200 8,216 11/28/2023
2.5.600 117 1/16/2024
2.5.100 5,702 9/18/2023
2.5.3 2,595 8/11/2023
2.5.2 904 8/10/2023
2.5.1 193 8/10/2023
2.5.1-alpha.1 95 8/9/2023