[英]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.