我想知道是否有人对在 Orchard 中模拟某些 Clay 功能的有效方法有任何建议?我已经创建了一个包装器接口,IClayWrapper
我包装了一些更复杂的动态调用。不幸的是,这些包装方法需要返回动态对象,所以我仍然遇到问题。这是一个小例子:
public interface IClayWrapper : IDependency
{
dynamic BuildClipCreateViewModel(string projectTitle, string moduleTitle, dynamic clipForm);
}
public class WhenViewingCreateClip : GivenAClipController
{
private IEnumerable<ContentItem> queryResults;
protected override ClipController Establish_context()
{
var queryResults = new List<ContentItem>
{
new ContentItem(),
new ContentItem(),
};
ClayWrapperMock.Setup(x => x.BuildLookupListFromQuery(queryResults, "Create")).Returns(It.IsAny<dynamic>());
}
}
我目前面临的问题是 Moq 返回此错误:
设置:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:“
Moq.Language.Flow.ISetup<Aqovia.Module.MotionGallery.Infrastructure.IClayWrapper,object>
”不包含“Returns
”的定义
基本上,它将Returns
方法从 Moq 更改为动态调用,这是我在尝试包装 Clay 材料之前面临的主要问题之一。我还尝试引入具有类似结果的假形状工厂。有没有人找到一种有效的方法来测试这些东西?除了不测试吗?