Как смоделировать сервис wcf (преобразованный из asmx) Moq - PullRequest
0 голосов
/ 30 сентября 2011

У меня есть тестовое приложение Silverligth (.net 4.0), и я добавил ссылку на мою службу WCF (3.5)

А вот и мои коды

MyService.svc

<%@ServiceHost Language="VB" Service="MyServiceWS.Service1" %>

MyService.asmx

<System.Web.Services.WebService(Namespace:="http://schemas.mypage.co.uk/MyService")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ServiceContract(Namespace:="http://schemas.mypage.co.uk/MyService")> _
<ServiceKnownType(GetType(Member))> _
<ToolboxItem(False)> _
Public Class Service1
    Inherits System.Web.Services.WebService

из reference.cs

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class Service1Client : System.ServiceModel.ClientBase<MyServiceApp.MyServiceService.Service1>, MyServiceApp.MyServiceService.Service1 {

мой тестовый класс:

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;

namespace MyServiceApp.UnitTests
{
    [TestClass]
    public class ShowroomLogViewModelTests
    {
        [TestMethod]
        public void ReloadShowroomLogs_IsBusyShouldBeFalse()
        {
            var mockedWebService = Mock<IService1>;

Проблема в том, что:

IService1 cannot be resolved

Как я могу издеваться над моей услугой wcf?

РЕДАКТИРОВАТЬ: один шаг ближе

var mockedWebService =new Mock<MyService.Service1>;

Я изменил это и сейчас компилирую, но ... У меня нет доступа к методу, например

mockedWebService.GetShowroomLogs();

Это большая проблема, потому что мне нужно изменить свойство ServiceClient в ShowroomLogViewModel для интерфейса, и я не могу, потому что тогда моя viewmodel не может использовать методы сервиса wcf.

1 Ответ

1 голос
/ 05 октября 2011

Вы должны сделать это: mockedWebService.Object.GetShowroomLogs ();

...