Когда я закручиваю маршрут /test
, он отлично работает, однако тест ниже 404 при попытке попасть на сервер памяти по тому же маршруту.Маршруты неверно отображаются при создании в памяти сервера web api
При проверке _client
и _config
, похоже, все в порядке - хотя я не уверен, как подтвердить, что мой сервер памяти работает правильно.
Кто-нибудь знает, как я могу получить свой веб-сервер в памяти, чтобы правильно отобразить его маршруты, чтобы мой метод тестирования мог его достичь?
namespace Robo.Tests.Controllers
{
[TestClass]
public class IntegrationTests
{
private HttpMessageInvoker _client;
private HttpConfiguration _config = new HttpConfiguration();
[TestInitialize]
public void SetupTest()
{
_config.MapHttpAttributeRoutes();
_config.EnsureInitialized();
var server = new HttpServer(_config);
_client = new HttpMessageInvoker(server);
}
[TestMethod]
public async Task Test()
{
var result = await _client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "http://localhost/test"), CancellationToken.None);
}
}
}
и контроллер в случае, если вы заинтересованы
namespace Robo.Controllers
{
//[ValidationActionFilter]
public class CVController : ApiController
{
[HttpGet]
[Route("test")]
public async Task<IHttpActionResult> test()
{
return Ok();
}
}
}
Я считаю, что тестовый сервер в памяти прослушивает localhost. так что это будет 'http: // localhost/test/test', предполагая, что маршрут был {controller}/{action} – Nkosi
просто попытался сменить на localhost и все еще 404ing – Jamesla
Является ли контроллер и тест в той же сборке? Включите определение класса контроллера. – Nkosi