FREE BOOK

Chapter 1: Workflow Program

Posted by Packt Publishing Free Book | WF October 15, 2010
In this chapter we will see how to create WF program with different methods.

Testing a WF program with a unit test framework

In this task, we will create a Test Project to do unit testing for a WF program.

How to do it...

  1. Add a Test Project to the solution:
    Add a Test Project to the Chapter01 solution and name the project as UnitTestForWFProgram as shown in the following screenshot:



  2. Add a Workflow file to the Test Project:
    Add a Workflow activity to this project. Right-click the newly created Test Project, then go to Add | New Items... | Workflow | Activity and name the activity as WorkflowForTest.xaml . In the opening WF designer, create an OutArgument as OutMessage. Next, drag an Assign activity to the Designer panel and assign the string "Test Message" to the OutMessage argument as shown in the following screenshot:



      In WF4, Workflow is actually an Activity class. We could see "Workflow" as a conception from a macroeconomic viewpoint, while considering "Activity" as a development concept.
  3. Create unit test code:
    Open the UnitTest1.cs file and fi ll the file with following code:

    using Microsoft.VisualStudio.TestTools.UnitTesting;

    using System.Activities;

    namespace UnitTestForWFProgram

    {

        [TestClass]

        public class UnitTest1

        {

            [TestMethod]

            public void TestMethod1()

            {

                var output =

                    WorkflowInvoker.Invoke(new WorkflowForTest());

                Assert.AreEqual("Test Message",

                    output["OutMessage"]);

            }

        }

    }

  4. Run it:
    Set UnitTestForWorkflow as Startup project. Press Ctrl+F5 to build and run the test without debugging as shown in the following screenshot:

How it works...

In the preceding code snippet, [TestClass] indicates it is a unit test class, whereas [TestMethod] indicates a test method. When the Test Project runs, the test method will be executed automatically.

There's more...

In real application development, we can also create a separate Unit Test project and add a reference to the target project.

Total Pages : 13 910111213

comments