无法用mock运行这个单元测试

时间:2012-04-18 21:59:12

标签: vb.net unit-testing mocking moq

我尝试对此方法进行单元测试,这非常简单,只需将对象添加到数据库中,如果它运行良好,则返回true

Public Shared Function CrearCliente(ByVal cliente As Cliente) As Boolean
    Try
        db.Cliente.Add(cliente)
        db.SaveChanges()
        Return True
    Catch ex As Exception
        Throw New Exception("ocurrio un error guardando al cliente")
    End Try
End Function

现在这是我的考试

<TestMethod()>
Public Sub CrearClienteTest()
    Dim mock = New Moq.Mock(Of Cliente)
    Dim actual As Boolean
    mock.Setup(Function(x) x.Nombre).Returns("blah")
    'mock.Setup(Function(x) x.Apellido()
    actual = Class1.CrearCliente(mock.Object)
    Assert.AreEqual(True, actual)
End Sub

很简单我的问题是为什么在Debugged测试时会抛出此错误

Invalid setup on a non-virtual (overridable in VB) member: x => x.Nombre

可能有什么不对?我需要另一种配置吗?

1 个答案:

答案 0 :(得分:1)

正如错误所述,Moq要求您模拟的成员为Overridable