<TestMethod()> _ Public Sub Can_Update_User() ' Arrange _membershipService.Setup(Function(x) x.UpdateUser(It.IsAny(Of MembershipUser))) Dim controller As New UsersController(_membershipService.Object,_roleProvider.Object,_supportWorksService.Object,_portalClientService.Object) ' Act Dim result As ViewResult = controller.Edit("testUser",New FormCollection) ' Assert Assert.AreEqual("Index",result.ViewName) End Sub
模拟的成员资格服务的设置将无法编译,错误是:
Overload resolution Failed because no
accessible ‘Setup’ can be called with
these arguments:‘Public Function
Setup(Of TResult)(expression As
System.Linq.Expressions.Expression(Of
System.Func(Of
Services.IMembershipService,
TResult))) As
Moq.Language.Flow.ISetup(Of
Services.IMembershipService,
TResult)’: Expression does not produce
a value.‘Public Function Setup(Of
TResult)(expression As
System.Linq.Expressions.Expression(Of
System.Func(Of
Services.IMembershipService,
TResult)’: Data type(s) of the type
parameter(s) cannot be inferred from
these arguments. Specifying the data
type(s) explicitly might correct this
error.‘Public Function
Setup(expression As
System.Linq.Expressions.Expression(Of
System.Action(Of
Services.IMembershipService))) As
Moq.Language.Flow.ISetup(Of
Services.IMembershipService)’:
Expression does not produce a value.
我错过了什么?我是否必须创建一个假类,而不是在我的班级有一个我想要调用它的方法时使用Moq?
编辑:
好吧,一点点阅读表明这是由于使用Function()必须有结果的lambda在VB中表达的方式.
在next version of VB.NET(VB10)中,该语言将支持Sub lambdas,并应在这些情况下提供帮助.
似乎其他人也与目前的Moq / VB.NET组合有不同程度的having trouble.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。