我在测试中有以下内容(我的第一次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
有谁可以指出我做错了什么?
答案 0 :(得分:6)
确保您已从菜单中启用了探查器。
使用Visual Studio编写测试时,您会注意到Telerik菜单和其中的JustMock菜单项。在那里,您必须检查JustMock是否已启用(“启用JustMock”应为灰色,请参阅下面的示例)。