0
처음으로 ASP.NET Core 2.0 사용.외부 DLL에서 내 API를 테스트하고 호출하는 방법
내가 만든 DLL을 참조하는 웹 프로젝트가 있습니다. 이 DLL에서
간단한 방법입니다 ...namespace InformedWorkerApi
{
[Route("api/[controller]")]
public class RegistrationController: Controller
{
private readonly IAccountRepository _accountRepository;
public RegistrationController(IAccountRepository accountRepository)
{
_accountRepository = accountRepository;
}
[HttpPost()]
[Route("SignOn")]
public async Task<InformedWorkerModels.Account> SignOn([FromBody]SignOnRequest model)
{
return await _accountRepository.SignOn(model.EmailAddress, model.Password);
}
}
}
나는 또한 내 DLL을 참조하는 테스트 프로젝트 ...
[TestMethod]
public async Task SignOn()
{
var webHostBuilder = new WebHostBuilder()
.UseStartup<Startup>();
using (var host = new TestServer(webHostBuilder))
{
using (var client = host.CreateClient())
{
var requestData = new SignOnRequest { EmailAddress = "emailAddress", Password= "password" };
var content = new StringContent(JsonConvert.SerializeObject(requestData), Encoding.UTF8, "application/json");
var response = await client.PostAsync("api/Registration/SignOn", content);
//do some asserts here
}
}
}
내가 오류 상태 코드를 404하지 얻기를 만들었습니다 녹이다.
무엇이 잘못 되었습니까?
어떻게이 프로젝트는 API의 호스트 이름을 알고 테스트 않습니다에서 참조로
ConfigureServices
이을 포함하도록 업데이트? – aaronR
안녕하세요 @aaronR, 관심을 보여 주셔서 감사합니다. 호스트가 StartUp 클래스에서 파생 된 것으로 가정합니다. –
@AndrewSimpson 경로의 일부로 이메일과 비밀번호를 가지고 있지만 본문의 내용으로 전송합니다. 액션에 대한 라우트 템플리트와 일치하지 않으므로 404 Not Found가 표시됩니다. 또한 코어의 경우 프레임 워크에서 매개 변수를 찾아야하는 매개 변수 속성을 지정해야합니다. – Nkosi