visual studio servicio referencia example crear consumir agregar c# visual-studio-2010 wcf web-services

c# - studio - ¿Está probando un servicio web de WCF?



web service c# (2)

Quería crear una clase de prueba para un servicio WCF. Creo que "burlarse" es el término correcto para esto?

No estoy seguro de que la forma correcta de hacerlo sea la que creo que debo hacer. Me han dado una URL a un servicio WCF, por ejemplo:

http:://somesite.com/wcf/RealService.svc

Y:

http:://somesite.com/wcf/RealService.svc?wsdl

Entonces, en lugar de agregar realmente RealService.svc a mi proyecto como Service Reference simplemente agregué un nuevo WCF Service vacío a mi proyecto llamado Service1 .

Entonces, quiero usar la wsdl.exe (¿o tal vez la svcutil.exe?) Para generar una interfaz desde la url WSDL: http:://somesite.com/wcf/RealService.svc?wsdl .

A continuación, abro el archivo Service1.cs y en lugar de dejar heredar de IService1.cs dejo heredar de la interface generada.

Luego, en lugar de llamar al servicio real en mi aplicación, simplemente llamo a mi clase de Service1 . ¿Es así como funciona la burla de un servicio web?

También necesito averiguar cómo generar realmente una interface con la herramienta svcutil (he leído que no puedo usar wsdl.exe para un servicio WCF). ¡Así que cualquier consejo sobre eso es más que bienvenido también!


Muchas áreas para tocar, intentarán apuntarle en las direcciones correctas:

  • Si desea probar (es decir, pasar la entrada, verificar el resultado) su servicio WCF, use la herramienta de Visual Studio GUI WCF Test Client (artículo de MSDN here ).

  • Si quiere burlarse de su servicio WCF (es decir, prueba de unidad de su componente que consume el servicio WCF), use un marco de burla como NMock2 que le permite NMock2 la interfaz de servicio ( here relacionan los SO). También podría codificar manualmente un simulacro (implementando la interfaz), si no desea utilizar un marco externo, pero esto es más complicado.

  • Si desea probar la unidad de su servicio WCF (es decir, escribir pruebas de unidad para el servicio, negocios, datos, etc.), utilice un popular marco de burla ( here relaciona el hilo SO).

  • Para generar un proxy para su servicio WCF, use la utilidad de línea de comandos svcutil.exe (artículo de MSDN here ) como ha adivinado. Esta utilidad viene con varias opciones (idioma, espacio de nombres, archivo de configuración, etc.), así que preste atención a ellos.

Espero que esto ayude.


Puede generar su proxy utilizando svcutil.exe (desde Visula Studio: Agregar una referencia de servicio ... ). Esto generará su proxy de cliente y una interfaz de servicio .

Por ejemplo, para su servicio http :: //somesite.com/wcf/RealService.svc? Wsdl obtendremos:

  • IRealService (interfaz)
  • RealServiceClient (implementa IRealService y extiende System.ServiceModel.ClientBase)

Puede crear una clase simulada que implemente su interfaz de servicio (IRealService).

Y en su aplicación en lugar de instanciar el cliente de servicio concreto (RealServiceClient) cuando desea llamar a su servicio, puede utilizar un contenedor de fábrica o un contenedor de IOC.

De esta forma, puede decidir con qué instancia trabaja su aplicación (o módulos / componentes): servicio real en tiempo de ejecución, simulacro al realizar la prueba.