Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

readme.md

Test helpers for Workflow Core

Provides support writing tests for workflows built on WorkflowCore

Installing

Install the NuGet package "WorkflowCore.Testing"

PM> Install-Package WorkflowCore.Testing

Usage

With xUnit

  • Create a class that inherits from WorkflowTest
  • Call the Setup() method in the constructor
  • Implement your tests using the helper methods
    • StartWorkflow()
    • WaitForWorkflowToComplete()
    • WaitForEventSubscription()
    • GetStatus()
    • GetData()
    • UnhandledStepErrors
public class xUnitTest : WorkflowTest<MyWorkflow, MyDataClass>
{
    public xUnitTest()
    {
        Setup();
    }

    [Fact]
    public void MyWorkflow()
    {
        var workflowId = StartWorkflow(new MyDataClass() { Value1 = 2, Value2 = 3 });
        WaitForWorkflowToComplete(workflowId, TimeSpan.FromSeconds(30));

        GetStatus(workflowId).Should().Be(WorkflowStatus.Complete);
        UnhandledStepErrors.Count.Should().Be(0);
        GetData(workflowId).Value3.Should().Be(5);
    }
}

With NUnit

  • Create a class that inherits from WorkflowTest and decorate it with the TestFixture attribute
  • Override the Setup method and decorate it with the SetUp attribute
  • Implement your tests using the helper methods
    • StartWorkflow()
    • WaitForWorkflowToComplete()
    • WaitForEventSubscription()
    • GetStatus()
    • GetData()
    • UnhandledStepErrors
[TestFixture]
public class NUnitTest : WorkflowTest<MyWorkflow, MyDataClass>
{
    [SetUp]
    protected override void Setup()
    {
        base.Setup();
    }

    [Test]
    public void NUnit_workflow_test_sample()
    {
        var workflowId = StartWorkflow(new MyDataClass() { Value1 = 2, Value2 = 3 });
        WaitForWorkflowToComplete(workflowId, TimeSpan.FromSeconds(30));

        GetStatus(workflowId).Should().Be(WorkflowStatus.Complete);
        UnhandledStepErrors.Count.Should().Be(0);
        GetData(workflowId).Value3.Should().Be(5);
    }

}