Wie teste ich eine Klasse, die Proxy-Clients verwendet, die von einer Webdienst-Referenz generiert wurden?So spiegeln Sie WCF-Webdienste mit Rhino Mocks
Ich möchte den Client mock, aber die generierte Client-Schnittstelle enthält nicht die Close-Methode, die erforderlich ist, um den Proxy ordnungsgemäß zu beenden. Wenn ich nicht die Schnittstelle, sondern eine konkrete Referenz verwende, bekomme ich Zugriff auf die close-Methode, verliere aber die Fähigkeit, den Proxy zu verspotten.
Ich versuche, eine Klasse ähnlich wie dies zu testen:
public class ServiceAdapter : IServiceAdapter, IDisposable
{
// ILoggingServiceClient is generated via a Web Service reference
private readonly ILoggingServiceClient _loggingServiceClient;
public ServiceAdapter() : this(new LoggingServiceClient()) {}
internal ServiceAdapter(ILoggingServiceClient loggingServiceClient)
{
_loggingServiceClient = loggingServiceClient;
}
public void LogSomething(string msg)
{
_loggingServiceClient.LogSomething(msg);
}
public void Dispose()
{
// this doesn't compile, because ILoggingServiceClient doesn't contain Close(),
// yet Close is required to properly terminate the WCF client
_loggingServiceClient.Close();
}
}