pro*_*mba 7 workflow-foundation-4 c#-4.0
我对名为MyCodeActivity的WF代码活动进行了以下单元测试:
[ExpectedException(typeof(ArgumentException))]
[TestMethod]
public void ShouldRequireParam()
{
//arrange
var invoker = new WorkflowInvoker(new MyCodeActivity()
{
MyInt = 2,
MyComplexObject = _complexObject
});
//act
invoker.Invoke();
//assert
Assert.Fail("Expected ArgumentException");
}
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我得到以下异常
'Literal <MyComplexObject>':Literal仅支持值类型和不可变类型System.String.MyComplexObject类型不能用作文字.
pro*_*mba 12
解决眼前的问题:
MyComplexObject = _complexObject
Run Code Online (Sandbox Code Playgroud)
至
MyComplexObject = new InArgument<MyComplexObject>((ctx) => _complexObject)
Run Code Online (Sandbox Code Playgroud)
进一步阅读:http://msdn.microsoft.com/en-us/library/ee358749.aspx.
注意:您还应该使用NuGet上提供的Microsoft.Activities.UnitTesting包.它使IOC更容易(因为WF与服务定位器模式一起工作而不是依赖注入)
归档时间: |
|
查看次数: |
2088 次 |
最近记录: |