2017-01-25 3 views
0

Привет У меня есть тестовый метод пытается Mock модульное тестирование с локального ServiceClient с помощью Visual StudioC# - Mock Test Unit От Service Client

[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; 
} 

Теперь моя проблема заключается в том, как я буду делать Mock для моего ClientService в единичном испытании;

+1

которые вы используете для обрезки? –

+0

Вы хотите проверить db путем сравнения значения, возвращаемого с уровня обслуживания? Я полагаю, что сервисный слой находится поверх слоя db. – qxg

+0

https://msdn.microsoft.com/en-us/library/ff650441.aspx –

ответ

0

Предполагая, что вы используете VS, я нашел аналогичную проблему с модульными тестами, где некоторые объекты действительно трудно реплицировать в сценарии единичного тестирования. https://marketplace.visualstudio.com/items?itemName=OmarElabd.ObjectExporter Я пробовал использовать этот инструмент, который можно использовать, когда вы отлаживаете его, он примет любой объект, который вы увидите на вкладке «autos», и вы можете отправить его на объект aC# или xml, который может быть включенным в единичный тест.

+0

Hi @TLCONE Какой инструмент вы использовали для решения своей проблемы. – user3624511

+0

[link] (https://marketplace.visualstudio.com/items?itemName=OmarElabd.ObjectExporter) – TLCONE

+0

К сожалению; это не работает для меня; Я должен буду придерживаться Visual Studio Unit Testing – user3624511