Microsoft Fakes 是一个相对较新的框架,我对这个问题的所有方面也相对较新,所以我需要详细的答案。
我被赋予了对应用程序进行“单元测试”的任务,我们将其称为旧版应用程序(由 Michael Feathers 定义),特别是使用 Microsoft Fakes 框架。我的经理建议使用 Fakes 的原因是它能够允许围绕外部依赖项和 API 进行单元测试,特别是删除数据库依赖项。
鉴于我在 VB.net、.NET 框架和单元测试方面的背景很薄弱,所以这项任务有点压倒性。无论如何,我想深入了解使用 SHIMS 来绕过这些内部类依赖项。我对 SHIMS 与更快、更容易实现的 STUBS 感兴趣的原因是因为此应用程序中没有接口(其他我相对不熟悉的东西。)并且 STUB 需要接口。
现在,对于这个背景下的一个更具体的问题,我想帮助尝试对一个类进行单元测试,比如由“字符串名称”和类型“地址地址”组成的类 Person,并将它们用作构造函数参数。然后,我们可能会使用参数“string streetNumber”、“string street”和用户类型“state State”及其自己的参数构造地址类...
public class Person()
Private mName As String
Private mAddr As myclass.Address
Public Sub New(ByVal name As string, ByVal addr As Address)
mName = name
mAddr = addr
End Sub
而在别处...
public class Address()
Private mStreet As String
Private mState As myclass.State
Public Sub New(ByVal street As String, ByVal state As State)
mStreet = street
mState = state
End Sub
然后会有一个状态,它包含它包含的任何属性和方法......
所以,我想知道如何构建一个单元测试来将类 Person 与这些其他类(地址然后状态)隔离开来,这样如果它们处于开发或更改状态,Person 的单元测试仍然会通过......任何建议???