написание регрессионного теста для службы wcf с клиентом

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

    Private Blah proxy;

    [SetUp]
    public void SetUp()
    {
         proxy= new Blah();
    }

    [Test]
    public void GetStuff()
    {
        var result = proxy.GetStuff();
        Assert.NotNull(result);
    }

Это не работает, потому что моя служба не работает. Как мне запустить службу до тестов?


person TJF    schedule 21.02.2014    source источник


Ответы (1)


Для интеграционного/приемочного тестирования сервисов WCF я предлагаю вам использовать Собственный хостинг Служба WCF. Примеры вы можете найти здесь:

Создайте автономный сервис при настройке прибора и закройте его при демонтаже прибора:

EndpointAddress address = new EndpointAddress("http://localhost:8080/service1");
ServiceHost host;        
IService1 service;

[TestFixtureSetUp]
public void FixtureSetUp()
{            
    var binding = new BasicHttpBinding();
    host = new ServiceHost(typeof(Service1), address.Uri);
    host.AddServiceEndpoint(typeof(IService1), binding, address.Uri);
    host.Open();
}

[TestFixtureTearDown]
public void FixtureTearDown()
{
    if (host == null)
        return;

    if (host.State == CommunicationState.Opened)
        host.Close();
    else if (host.State == CommunicationState.Faulted)
        host.Abort();
}

С размещенным сервисом вы можете получить сервисный прокси:

var binding = new BasicHttpBinding();
ChannelFactory<IService1> factory = 
     new ChannelFactory<IService1>(binding, address);
service = factory.CreateChannel();

И ваш тест будет выглядеть так:

[Test]
public void ShouldReturnSomeStuff()
{
    var result = service.GetStuff();
    Assert.NotNull(result);
}
person Sergey Berezovskiy    schedule 21.02.2014