我有一个 Silverlight ValueConverter,它应该采用 aenum
并将其转换为Brush
. 像这个简化的例子:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var brush = new SolidColorBrush(Colors.Blue);
var entryType = (EntryType)value;
if (entryType == EntryType.Hour)
brush.Color = Colors.Red;
return (brush);
}
如果我想对此进行单元测试,它将无法正常工作。我得到这个例外:
System.TypeInitializationException : The type initializer for 'MS.Internal.JoltHelper' threw an exception.
----> System.IO.FileNotFoundException : Could not load file or assembly 'System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies.
at MS.Internal.JoltHelper.get_ThreadID()
at MS.Internal.XcpImports.CheckThread()
at System.Windows.DependencyObject..ctor(UInt32 nativeTypeIndex, IntPtr constructDO)
...
我知道这是因为在我的 (NUnit) 单元测试中,加载的 CLR 与运行 Silverlight 应用程序时不同。我知道我不应该在 unit-tests 中测试 UI,但这只是测试我的 ValueConverter,所以我认为这是一个有效的测试。
有谁知道这是否以及如何可测试?