簡體   English   中英

單元測試 web api actionresult index()

[英]unit test web api actionresult index()

我是 .net 中單元測試 web api 的新手。 我想測試一個 api 控制器,它在數字和日期匹配時返回不同的響應。

[HttpGet]
[Produces("application/json")]

public ActionResult<NumLookup> Index(string numA, string? numB, string? numDate)
        {
         NumLookup response = new NumLookup();
           
         List<NumLookupRecord> searchResult = new List<NumLookupRecord>();

         DateTime CheckNumDate;
         try
         {
              CheckNumDate = DateTime.ParseExact(NumDate, "yyyyMMdd", CultureInfo.InvariantCulture);
         }
         catch
         {
               response.InfoCode = "Invalid";
               response.InvalidInfoCode = "Nill";
                
               return Ok(response);
          }

}
 return Ok(response);

我不確定設置是否正確。

 public class DefaultControllerTests
    {
        [Fact]
        public void ReturnCorrectResponseCode()
        {
            DefaultController defaultController = new CreateDefaultController();
             var result = defaultController.Index("34534524", "467478678", "20251112");

            Assert.NotNull(result);
            Assert.IsAssignableFrom(typeof(ContentResult), result);
            Assert.AreEqual("Invalid", result.Content);

        }
    }

您必須確保您在單元測試項目中引用了您的 MVC 項目,並檢查您是否錯過了控制器構造函數中的參數。我嘗試如下:

public class ControllerForTest : Controller
    {
        private readonly ISomeService _someservice;
        public ControllerForTest(ISomeService someservice)
        {
            _someservice = someservice;
        }

        public IActionResult Test(int num1,int num2)
        {
            
            var num3 = _someservice.GetNum(num1);
            if(num3>num2)
            {
                var mesage = new Message() {.......};
                return new JsonResult(mesage);
            }
            return View();
        }

        public IActionResult Test2()
        {
            return View();
        }
    }

在此處輸入圖像描述

如果您的錯誤是由其他問題引起的,請顯示錯誤消息和您的控制器的更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM