2010-05-14 158 views
0

我正在使用VS2010。 Silverlight 4,NUnit 2.5.5和TypeMock TypemockIsolatorSetup6.0.3.619.msiSilverlight單元測試。運行測試時出錯

在MVVM測試項目中,PeopleViewModel是我想測試的ViewModel。

請指教您是否使用其他產品進行MVVM Silverlight的單元測試。或者請幫助贏得這個TypeMock。 TIA

這是測試的代碼:

[Test] 
[SilverlightUnitTest] 
public void SomeTestAgainstSilverlight() 
{ 
    PeopleViewModel o = new PeopleViewModel(); 
    var res = o.People; 

    Assert.AreEqual(15, res.Count()); 
} 

當運行在ReSharper的測試,我得到以下錯誤:

TestA.SomeTestAgainstSilverlight : Failed****************************************** 
*Loading Silverlight Isolation Aspects...* 
****************************************** 

TEST RESULTS: 
--------------------------------------------- 

    System.MissingMethodException : Method not found: 'hv TypeMock.ArrangeActAssert.Isolate.a(System.Delegate)'. 
    at a4.a(ref Delegate A_0) 
    at a4.a(Boolean A_0) 
    at il.b() 
    at CThru.Silverlight.SilverlightUnitTestAttribute.Init() 
    at CThru.Silverlight.SilverlightUnitTestAttribute.Execute() 
    at TypeMock.MockManager.a(String A_0, String A_1, Object A_2, Object A_3, Boolean A_4, Object[] A_5) 
    at TypeMock.InternalMockManager.getReturn(Object that, String typeName, String methodName, Object methodParameters, Boolean isInjected) 
    at Tests.TestA.SomeTestAgainstSilverlight() in TestA.cs: line 21 

而在NUnit的運行測試,我得到:

Tests.TestA.SomeTestAgainstSilverlight: 
System.DllNotFoundException : Unable to load DLL 'agcore': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 

at MS.Internal.XcpImports.Application_GetCurrentNative(IntPtr context, IntPtr& obj) 
at MS.Internal.XcpImports.Application_GetCurrent(IntPtr& pApp) 
at System.Windows.Application.get_Current() 
at ViewModelExample.ViewModel.ViewModelBase.get_IsDesignTime() in C:\Documents and Settings\USER\Desktop\ViewModelExample\ViewModelExample\ViewModel\ViewModelBase.cs:line 20 
at ViewModelExample.ViewModel.PeopleViewModel..ctor(IServiceAgent serviceAgent) in C:\Documents and Settings\USER\Desktop\ViewModelExample\ViewModelExample\ViewModel\PeopleViewModel.cs:line 28 
at ViewModelExample.ViewModel.PeopleViewModel..ctor() in C:\Documents and Settings\USER\Desktop\ViewModelExample\ViewModelExample\ViewModel\PeopleViewModel.cs:line 24 
at Tests.TestA.SomeTestAgainstSilverlight() in C:\Documents and Settings\USER\Desktop\ViewModelExample\Tests\TestA.cs:line 22 

更新:我沒有按照這個問題。我已經切換到其他工具。

+0

我認爲這是SL和.NET 4.0核心dll之間的衝突。 您可以嘗試通過從項目文件配置系統級dll參考提示路徑並使用'extern alias'來解決此問題。 – 2011-11-07 15:44:23

回答

0

此消息看起來像一個不匹配的文件問題。嘗試從頭開始創建一個新的測試項目。

首先添加對Typemock.dllTypemock.ArrangeActAssert.dll的引用。從CThru目錄中添加CThru.dllCThru.Silverlight.dll

添加對System.Windows的參考(位於C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\System.Windows.dll)。

嘗試創建一個新的測試方法,並與SilverlightUnitTest屬性裝飾它:

using NUnit.Framework; 
using CThru.Silverlight; 

[TestFixture] 
public class SilverlightTest 
{ 
    [Test, SilverlightUnitTest] 
    public void EmptyTest() 
    { 

    } 
} 

運行該空測試。如果您仍然遇到您所描述的問題,請聯繫support at typemock.com獲取進一步幫助。

相關問題