我有一個Silverlight ValueConverter應該採取enum
並將其轉換爲一個Brush
單元測試Silverlight的ValueConverters。事情是這樣的簡單的例子:你怎麼創造DependencyObjects
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應用程序將運行。我知道I shouldn't test UI in unit-tests,但這只是測試我的ValueConverter,所以我認爲這是一個有效的測試。
有誰知道是否以及如何測試?