TypeMock入门笔记代码---数据库操作对象mock

数据库对象操作代码 VB.net实现

Public Shared Function GetUser(ByVal connectionString As String) As Users
        Dim connection As New SqlConnection(connectionString)
        Using (connection)

            Dim command As New SqlCommand("select UserName from tb_User", connection)
            connection.Open()
            Dim reader As SqlDataReader = command.ExecuteReader()
            reader.Read()

            If reader.HasRows Then
                Dim user As New Users
                user.Name = reader("UserName").ToString
                reader.Close()
                Return user
            End If
            reader.Close()
            Throw New Exception("Database has no user")
        End Using
    End Function


mock对象代码

<Test()> _
    Public Sub getFackUserObject()
        Dim rec As New RecordExpectations
        rec = RecorderManager.StartRecording()
        Using rec
            Dim connection As New SqlConnection(Nothing)

            Using connection
                Dim command As New SqlCommand(Nothing, Nothing)
                connection.Open()
                Dim fackreader As SqlDataReader = RecorderManager.CreateMockedObject(GetType(SqlDataReader))
                rec.ExpectAndReturn(command.ExecuteReader, fackreader)
                rec.ExpectAndReturn(fackreader.Read, False)
                rec.ExpectAndReturn(fackreader.HasRows, True)
                rec.ExpectAndReturn(fackreader("UserName"), "Gil")
                fackreader.Close()
            End Using
        End Using
        Assert.AreEqual("Gil", MockDataBase.GetUser("").Name)
    End Sub
Users的实现代码
Public Class Users
    Private _name As String
    Public Property Name() As String
        Get
            Return _name
        End Get
        Set(ByVal Value As String)
            _name = Value
        End Set
    End Property
End Class

今天发现TypeMock很强大,强大到有点难理解。之前有使用过MOQ和NMock,这两个迫使你面相接口编程,而TypeMock没有这样的限制。

转载于:https://www.cnblogs.com/jintianzhang/archive/2011/03/31/2001660.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值