【IT168 技术文档】在前面的练习中,你学会了如果使用自定义的问好消息建立一个Hello Workflow程序。在这个练习中,你将会添加在工作流中添加If/Else逻辑 ,使之更具用户的状态显示不同消息。
这个练习将会采用测试优先的方法,首先为新要求编写一个测试,然后实现需要的代码使测试通过。
1.打开解决方案
你可以使用练习6中建立的解决方案作为这个练习的起始方案。或者你可以根据以下步骤开始练习7。
(1)选择Start | All Programs | Microsoft Visual Studio 2010以运行Microsoft Visual Studio 2010。
(2)打开%TrainingKitInstallFolder%\Labs\ IntroToWF\Ex7-????\Begin目录下的练习7 的起始方案以开始这个练习。
(3)按CTRL+SHIFT+B键编译解决方案。
2.为新需求建立测试
我们的程序有一个新的需求。如果名称是奇数个字母,我们就使用“Greetings”来问候,否则使用“Hello”来问候“”“”。以下是一个和工作流功能相同的代码范例。
private static string SayHello(string userName)
{
string FirstWord = null;
if (userName.Length % 2 == 0)
FirstWord = "Hello";
else
FirstWord = "Greetings";
return FirstWord + ", " + userName +" from Workflow 4";
}
{
string FirstWord = null;
if (userName.Length % 2 == 0)
FirstWord = "Hello";
else
FirstWord = "Greetings";
return FirstWord + ", " + userName +" from Workflow 4";
}
(1)建立一个测试来验证新的需求。首先打开HelloWorkflow.Test 项目中的SayHelloTests.cs文件 (C#)或SayHelloTests.vb (Visual Basic)并加入下列代码
[TestMethod]
public void ShouldReturnGreetingWithOddLengthName()
{
var output = WorkflowInvoker.Invoke(
new SayHello() { UserName = "Odd" });
string greeting = output["Greeting"].ToString();
Assert.AreEqual("Greetings Odd from Workflow 4", greeting);
}
public void ShouldReturnGreetingWithOddLengthName()
{
var output = WorkflowInvoker.Invoke(
new SayHello() { UserName = "Odd" });
string greeting = output["Greeting"].ToString();
Assert.AreEqual("Greetings Odd from Workflow 4", greeting);
}
(2)右键单击测试方法并选择Run Tests ( )。测试将会失败,因为你还没有修改工作流使根据情况其返回不同的问号消息。
ShouldReturnGreetingWithOddLengthName测试失败