Closed drspam1991 closed 2 years ago
درود خطایی که دریافت می کنید به احتمال زیاد به خاطر عدم وجود IHttpContextAccessor هست علت اینه که شما دارید برای ابزاری تست مینویسید که نیاز به یک محیط اجرایی داره. هدف شما از نوشتن این تست دقیقا چه چیزی هست؟ چون معمولا تستها رو برای تست کردن کدهای خودتون باید بنویسید نه برای تست کردن ابزاری که دانلود یا نصب کردید.
ممنون بابت پاسختون. قصد من این هست که فرایندهای داخلی خودم رو بعد از request به بانک و همینطور Verify تست کنم. میخواستم از VirtualGateway استفاده کنم که نخوام اونهارو Mock کنم
راهی به جز Mock وجود نداره. روش صحیح نوشتن تست برای عملیاتی که در اون از یک ابزار خارجی استفاده میشه، استفاده از Mock هست. شما باید اینترفیس IOnlinePayment رو با Mock شبیه سازی کنید و برای این کار کافیه یک خروجی متناسب با چیزی که در تست انتظار دارید رو برای متدهای RequestAsnc و VerfyAsync تولید کنید.
بله درسته. ممنون از شما
سلام من در .NetCore در unit test برای initialize از این کد استفاده کردم:
` var builder = ParbadBuilder.CreateDefaultBuilder() .ConfigureGateways(gateways => { gateways .AddParbadVirtual() .WithOptions(options => options.GatewayPath = "/MyVirtualGateway"); }) .ConfigureHttpContext(builder => builder.UseDefaultAspNetCore()) .ConfigureStorage(builder => builder.UseMemoryCache());
builder.Build(); `
و در ادامه از StaticOnlinePayment.Instance استفاده کردم و با صدا زدن متد RequestAsync پیغام Object reference not set to an instance of an object را دریافت میکنم. مشکل از کجا میتونه باشه؟ ممنون