Unsere Anwendung integriert mit einem WCF-Webservice über eine DLL-Referenz und WCF-Konfigurationseinträge in der Web.config der Client-Anwendung. Wenn ich versuche, den Webservice zu verspotten, erhalte ich ein "Konnte nicht finden Standard-Endpunkt-Element, das Vertrag im ServiceModel-Client-Konfiguration-Abschnitt. Dies kann sein, weil keine Konfigurationsdatei für Ihre Anwendung gefunden wurde, oder weil kein Endpunkt-Element diese Co .. ." Error. Um das Problem zu beheben, habe ich die entsprechenden Bindungen aus der Datei "web.config" in die Datei app.config des Testprojekts eingefügt und auf "copy always" gesetzt, sodass sie in den Ordner bin \ debug kopiert wird, aber immer noch der Fehler auftritt. Wie soll ich dieses Problem lösen?Mock WCF Service-Referenz durch eine dritte Partei DLL
using Payments.ServiceReferences.PaymentServiceProxy;
public interface IPaymentsAPIClientGenerator
{
PaymentServiceClient PaymentServiceClient { get; }
}
using Payments.ServiceReferences.PaymentServiceProxy;
public class PaymentsAPIClientGenerator : IPaymentsAPIClientGenerator
{
public PaymentsAPIClientGenerator()
{
}
public PaymentServiceClient PaymentServiceClient
{
get
{
var paymentServiceClient = PaymentVaultProxyFactory.GeneratePaymentServiceClient();
return paymentServiceClient;
}
}
}
[TestMethod]
public void IfTheSecondPaymentFailsThenTheFirstPaymentShouldBeVoided()
{
//Arrange
var iPaymentsAPIClientGeneratorMock = new Mock<IPaymentsAPIClientGenerator>();
var paymentServiceClient = new Mock<PaymentServiceClient>();
iPaymentsAPIClientGeneratorMock.SetupGet(counter => counter.PaymentServiceClient).Returns(paymentServiceClient.Object);
}
Ich habe das versucht, aber es funktioniert nicht. Ich habe die Bindung in die Datei app.config im Testprojekt kopiert und auf Immer kopieren gesetzt. Ich sehe auch, dass die app.config-Datei im bin \ debug-Ordner des Testprojekts angezeigt wird, aber ich bekomme immer noch den gleichen Fehler. –
Sind Sie sicher, dass Sie die gesamte Konfiguration aus der App.config der DLL in die app.config Ihrer Testanwendung kopieren, vor allem in den Abschnitt system.serviceModel? Die Anwendung lädt Konfigurationselemente aus ihrem Bereich. Sie sollten dies nicht tun müssen, aber Sie können die Endpunktkonfiguration auch durch Code in Ihrem Testkonstruktor überschreiben. –
Ja, alles ist da. Ich denke, dass der erstellte Mock (im Unit-Test) nicht mit den Bindings in der app.config übereinstimmt. –