无法模拟....必须启用探查器来模拟,安排或执行指定的目标

时间:2015-05-05 09:56:45

标签: unit-testing telerik justmock

我在测试中有以下内容(我的第一次JustMock测试,我可能会添加)...

        var template = Mock.Create<MessageType>();
        Mock.Arrange(() => template.Subject)
            .Returns("This template has Zero tokens.");

        Mock.Arrange(() => template.Body)
            .Returns("This template has {{number}} of {{tokens}}.");

被Mocked这个班看起来像这样......

public class MessageType : BaseBusinessEntity
{
    public string Body { get; set; }

    public int DigestsToBeIncludedOn { get; set; }

    public Guid MessageReference { get; set; }

    public int MessageTypeId { get; set; }

    public string Name { get; set; }

    public int PredefinedRecipients { get; set; }

    public string Subject { get; set; }
}

当我尝试运行测试时,我得到了......

  

错误消息:测试方法   Genesis.Service.Implementation.Tests.DigestFixture.ShouldCorrectlyExtractTemplateTokens   引发异常:Telerik.JustMock.Core.ElevatedMockingException:   无法模拟'System.String get_Subject()'。分析器必须是   能够模拟,安排或执行指定的目标。堆栈跟踪:   在   Telerik.JustMock.Core.ProfilerInterceptor.ThrowElevatedMockingException(的MemberInfo   会员)   Telerik.JustMock.Core.MocksRepository.CheckMethodInterceptorAvailable(IMatcher   instanceMatcher,MethodBase方法)at   Telerik.JustMock.Core.MocksRepository.AddArrange(IMethodMock   methodMock)at   Telerik.JustMock.Core.MocksRepository.Arrange [TMethodMock](式   expr,Func 1 methodMockFactory) at Telerik.JustMock.Mock.<>c__DisplayClass8 1.b__6()at   Telerik.JustMock.Core.ProfilerInterceptor.GuardInternal [T](Func键1 guardedAction) at Telerik.JustMock.Mock.Arrange[TResult](Expression 1   表达)at   Genesis.Service.Implementation.Tests.DigestFixture.ShouldCorrectlyExtractTemplateTokens()   在   C:\创世记\开发\ Genesis.Service.Implementation.Tests \ DigestFixture.cs:行   46

有谁可以指出我做错了什么?

1 个答案:

答案 0 :(得分:6)

确保您已从菜单中启用了探查器。

使用Visual Studio编写测试时,您会注意到Telerik菜单和其中的JustMock菜单项。在那里,您必须检查JustMock是否已启用(“启用JustMock”应为灰色,请参阅下面的示例)。

enter image description here