2013-12-19 3 views
0

Я пытаюсь передать некоторые значения httpserver. это мой классКак создать объект для класса?

public interface ICommandRestClient 
{ 
    IRestResult Send(IMessageEnvelope envelope); 
} 
public class CommandRestClient : ICommandRestClient 
{ 
    private readonly string _serverAddress; 

    /// <summary> 
    /// Use to configure server address 
    /// </summary> 
    /// <param name="serverAddress">Configured serveraddress</param> 
    public CommandRestClient(string serverAddress) 
    { 
     _serverAddress = serverAddress; 
    } 

    public IRestResult Send(IMessageEnvelope envelope) 
    { 
    //do 
    } 
} 

и его работы. теперь я пытаюсь написать класс Xunit для метода Send. для этого мне нужно создать объект для доступа к классу CommandRestClient. но у меня не было значения serverAddress. Я хочу создать объект для класса CommandRestClient хардкорными значениями адреса или без прохождения serverAddress. помогите мне спасибо.

+0

Сделать соответствующее значение вверх (один или с завода) на то, что вы тестируете на реализацию CommandRestClient. Если вы тестируете что-то, что * использует * ICommandRestClient, тогда вы можете издеваться над этим (и полностью забыть о serverAddress). – user2864740

+0

Ваша тема не отражает ваше сообщение. – BDR

ответ

1

Как правило, вы создаете класс xunit под названием CommandRestClientTest для тестирования CommandRestClient. Вы можете жестко закодировать константу ServerAddress в этом классе для жесткого кодирования serverAddress и передать его каждому экземпляру CommandRestClient, который вы создаете в этом классе xunit.

Имейте в виду, что если вы на самом деле тестируете метод отправки где-нибудь, что является тестом интеграции. Чтобы быть чистым модульным тестом, вы будете издеваться над внешним взаимодействием и только тестировать бизнес-логику в CommandRestClient.

В блоке вы обычно помещаете это в инициализацию, отмеченную как [Настройка], но xunit рекомендует вам создавать объект в каждом методе.

образец кода (не скомпилирован)

public class CommandRestClientTest 
{ 
    const string testServerAddress = "localhost:8080"; 

    [Fact] 
    public void TestSomeMethod() 
    { 
     CommandRestClient commandRestClient = new CommandRestClient(testServerAddress); 

     //test, assert etc 
    } 
} 
+0

это что-то вроде этого? private readonly CommandRestClient _commandRestClient = new CommandRestClient ("http: // localhost: 8088 /"); – user3044294

Смежные вопросы