【问题标题】:Silverlight unit testing. Error while running testsSilverlight 单元测试。运行测试时出错
【发布时间】:2010-05-14 12:49:32
【问题描述】:

我正在使用 VS2010。 Silverlight 4、NUnit 2.5.5 和 TypeMock TypemockIsolatorSetup6.0.3.619.msi

在测试项目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

更新:我没有关注这个问题。我已切换到其他工具。

【问题讨论】:

  • 我认为这是 SL 和 .NET 4.0 核心 dll 之间的冲突。您可以尝试通过从项目文件配置系统级 dll 引用提示路径并使用“外部别名”来解决此问题。

标签: silverlight unit-testing nunit typemock


【解决方案1】:

此消息看起来像是文件不匹配问题。尝试从头开始创建一个新的测试项目。

首先添加对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 以获得进一步的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多