Workflow Foundation - Literal поддерживает только типы значений и систему неизменяемых типов.Строка
У меня есть следующий модульный тест для действия кода WF под названием MyCodeActivity:
[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");
}
когда я запускаю тест, я получаю следующее исключение
' Literal': Literal поддерживает только типы значений и систему неизменяемых типов.Строка. Тип MyComplexObject нельзя использовать в качестве литерала.
1 ответов
чтобы исправить непосредственную проблему:
MyComplexObject = _complexObject
to
MyComplexObject = new InArgument<MyComplexObject>((ctx) => _complexObject)
дальнейшее чтение:http://msdn.microsoft.com/en-us/library/ee358749.aspx .
Примечание: вы должны использовать Microsoft.Деятельности.UnitTesting пакет доступен на NuGet. Это делает IOC намного проще (поскольку WF работает с шаблоном локатора служб, а не с инъекцией зависимостей)