初めてASP.NET Core 2.0を使用する。外部DLLで自分のapiをテストして呼び出す方法
私は作成したDLLを参照するWebプロジェクトを持っています。この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ではないの取得見つかりました。
私はここで間違っていますか?
から参照されるように
を含めるように
ConfigureServices
を更新? – aaronRこんにちは@aaronR、興味を表明してくれてありがとう。私はホストがStartUpクラスから派生したと仮定しました。 –
@AndrewSimpsonあなたはルートの一部として電子メールとパスワードを持っていますが、それらを本文の内容として送信します。アクションのルートテンプレートに一致しないため、404が見つかりません。また、コアの場合は、フレームワークがパラメータを探す必要のあるパラメータ属性を指定する必要があります。 – Nkosi