C# - 来自服务客户端的模拟单元测试

时间:2017-01-25 10:48:36

标签: c#

您好我有一个测试方法是尝试使用Visual Studio从本地ServiceClient进行模拟单元测试

[TestMethod()]
public void IsSuccess_ThanAllocateFund()
{
    string FundCode ="CodeABC123";   
    bool isAvailable = CheckFundAvialable(FundCode);
    bool result = db.AddFund("UserHaskins",FundCode);
    Assert.AreEqual(isAvailable, result);
}

首先是检查基金。如果资金可用,那么它将使用以下方法向用户添加资金

public bool CheckFundAvialable(FundCode)
{
    bool isAvailable =true;
    FundAvailableServiceClient _PartAvailabilityService = new FundAvailableServiceClient()
    int _Available = _FundAvailableService.GetAvailability(FundCode);
    if (_Available <= 0) {
     isAvailable = false;
    }
    return isAvailable;
}

我的ServiceClint方法如下所示

public partial class FundAvailibilityServiceClient : System.ServiceModel.ClientBase<MyProject.IFundAvailibilityService>,
MyProject.IFundAvailibilityService
{
    public int GetAvailability(string stockCode)
    {
        return base.Channel.GetFundAvailibility(FundCode);
    }

}

添加到数据库;但是我想模仿

public bool AddFund(string UserName, string FundCode)
{ 
  // Database add / Insert
  return true;  
}

现在我的问题是如何在单元测试中为我的ClientService做Mock;

1 个答案:

答案 0 :(得分:0)

假设您正在使用VS,我发现单元测试存在类似问题,其中某些对象在单元测试场景中很难复制。 https://marketplace.visualstudio.com/items?itemName=OmarElabd.ObjectExporter 我尝试过使用此工具,您可以在调试时使用此工具,它会占用您在&#34; autos&#34;中看到的任何对象。选项卡,您可以将其发送到可以包含在单元测试中的c#或xml对象。