我正在从 Web 服务接收事件通知,这些通知会触发事件处理程序,其中包含有关触发事件的数据。一旦事件处理程序被调用,我正在尝试测试它a
,b
并且c
都使用正确的值调用。如果不依赖 Web 服务,这是不可能的
我的解决方案是创建转换器,将EventArgs
通过服务库(Exchange Web 服务)返回给我的内容转换为我的哑对象可以在不依赖第三方服务的情况下理解的内容。我的问题是EventArgs
EWS 库提供给我的类有一个内部构造函数,因此没有简单的方法来生成具有随机属性值的实例,而无需进行大量反射工作。
例如,我有一个简单的界面:
public interface IConverter<TFrom, TTo>
{
TTo Convert(TFrom from);
}
和一个简单的实现:
public class NotificationEventArgsConverter : IConverter<NotificationEventArgs, NewNotification>
{
public NewNotification Convert(NotificationEventArgs from)
{
return new NewNotification
{
ItemIds = from.Events.Cast<ItemEvent>().Select(x => x.ItemId.ToString())
};
}
}
问题是如何生成NotificationEventArgs
具有随机值的实例。有没有我在搜索中错过的图书馆?
这样做的整个目标是模拟如果我收到具有NotificationEventArgs
以下值的实例,那么NewNotification
应该类似于x
.
编辑
同时,我将简单地使用typeof(T).GetConstructor()
.