0
测试时,我有叫UserDto一个简单的对象,它看起来像:使用邮政与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)
{
}
}
所有这些代码的作品找到我时,手动测试,但我想创造一些自动化测试,将调用Web地址就像我成功地与我的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),我的控制器代码抛出一个异常,我与catch块结束错误:“无法绑定到UserDto类型”
如果我使用“with.Body(jsonUser),我的控制器代码不会抛出错误,但生成的用户对象在那里与其所有成员,但所有成员该对象为空。用户显示名字&姓氏,但他们都是空的。
我甚至尝试使用“with.Body(NEWUSER);但得到的编译时错误‘无法从UserDto转换为字符串’
我知道控制器代码的工作,所以必须有一些错误。 。我的测试代码,我显然不正确地换手的NEWUSER对象
任何帮助,将不胜感激