Я пытаюсь проверить привязку модели JSON в NancyFx.Единичное тестирование JSON ModelBinding в Nancy
Запрос работает при тестировании в браузере, но я не могу пройти модульный тест. Когда я отлаживаю тест, я считаю, что возвращаемая модель равна нулю от
var model = this.Bind<EventRequestModel>();
всегда имеет значение null;
Вот упрощенный пример того, что я делаю:
NancyModule:
Post["/Events"] = _ =>
{
// Convert request to model and validate
try
{
var model = this.Bind<EventRequestModel>();
var result = this.Validate(model);
if (!result.IsValid)
throw new Exception("Model was not valid");
return HttpStatusCode.OK
}
catch (Exception ex)
{
_logger.LogError(ex);
return HttpStatusCode.BadRequest;
}
};
Unit Test:
[Fact]
public void ReturnOkOnGoodRequest()
{
// Create a valid model
var model = new EventRequestModel()
{
TopRightLat = 100,
TopRightLong = 100,
BottomLeftLat = 100,
BottomLeftLong = 100
};
var response = _browser.Post("/API/Events", with =>
{
with.JsonBody(model);
});
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
Я также пытался писать JSON непосредственно в тело и что-то вроде этого:
var json = "{'TopRightLat' : 0, 'TopRightLong': 0, 'BottomLeftLat': 0, 'BottomLeftLong': 0}"
var response = _browser.Post("/API/Events", with =>
{
with.Header("Content-Type", "application/json");
with.Body(json);
});
Это тело JSON работает, когда я тестирую конечную точку вручную, но не в своем модульном тесте. Что я делаю не так?