我正在使用 SoapCore 来创建使用 asp.net core 2 的 WCF-ish 类型的应用程序。这对我来说很好用,但在集成测试我的端点时,我有点碰壁。由于 SoapCore 是一个中间件并且与任何 api 控制器都没有关系,因此我无法使用 HttpClient 来测试端点,因此 TestServer 对我没有用。我的问题是如何在不使用 TestServer 的情况下与集成测试并行运行 kestrel,或者在这种情况下有没有办法利用 TestServer?我认为这里的任何代码都没有任何用处,但到目前为止我得到的如下。启动文件public class Startup{ public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddTransient<IPaymentService>(service => new Services.PaymentService()); services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseSoapEndpoint<IPaymentService>("/PaymentService.svc", new BasicHttpBinding()); app.UseMvc(); }}支付服务[ServiceContract]public interface IPaymentService{ [OperationContract] string ReadPaymentFiles(string caller);} public class PaymentService : IPaymentService{ public string ReadPaymentFiles(string caller) { return caller; }}我的测试之一:public void Should_Get_Soap_Response_From_PaymentService() { var testServerFixture = new TestServerFixture(); var binding = new BasicHttpBinding(); var endpoint = new EndpointAddress(new Uri("http://localhost:5000/PaymentService.svc")); var channelFactory = new ChannelFactory<IPaymentService>(binding, endpoint); var serviceClient = channelFactory.CreateChannel(); var response = serviceClient.ReadPaymentFiles("Ping"); channelFactory.Close(); }该测试现在没有做任何事情,因为它没有调用任何实时端点,这是我的问题......
1 回答
- 1 回答
- 0 关注
- 150 浏览
添加回答
举报
0/150
提交
取消