У меня есть простой объект, называемый UserDto, который выглядит как:Использование Post при тестировании с NancyFx
public class UserDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
У меня есть контроллер Нэнси и упрощенный код, чтобы создать пользователь, не давая информацию пути, потому что все работы:
public void Create()
{
try
{
var user = this.Bind<UserDto>
// Create user using the user return variable
}
catch (Exception e)
{
}
}
Все это код работает найти, когда я проверить его вручную, но я хотел бы создать несколько автоматизированных тестов, которые будут вызываться веб-адрес, как я успешно делать с моими методами GET.
Внутренности моего [TestMethod] тестовый код выглядит следующим образом:
var bootstrapper = new DefaultNancyBootstrapper();
Browswer browser = new Browser(bootstrapper, to => to.Accept("application/json"));
UserDto newUser = new UserDto
{
FirstName = "TestFirst",
LastName = "TestLast"
};
string jsonUser = JsonConvert.SerializeObject(newUser);
var result = browser.Post("/DB/users/create, with =>
{
with.JsonBody(jsonUser);
// or
with.Body(jsonUser);
}
Если я использую «with.JsonBody (jsonUser), мой код контроллера бросает исключение, и я в конечном итоге в улове блок с Ошибка: «Не удалось привязать к типу UserDto»
Если я использую «with.Body (jsonUser), мой код контроллера НЕ выдает ошибку, но результирующий объект пользователя существует со всеми его членами, но все члены объект имеет значение null. пользователь показывает FirstName & LastName, но оба они равны нулю.
Я даже попытался с помощью «with.Body (NEWUSER), но получил ошибка времени компиляции„Не удается преобразовать из UserDto в строку“
Я знаю, что код контроллера работает, так что там должно быть что-то не так с. ... мой тестовый код, я, очевидно, не передавая от объекта NEWUSER правильно
Любая помощь будет принята с благодарностью