【发布时间】:2014-02-27 10:21:59
【问题描述】:
所以我的问题如下......对于一个项目,我们正在使用 RavenDb 和 Nancy 构建一个 api。所以我的问题是关于单元测试......我们使用嵌入式数据库,它在内存中运行多次建议。 ,如何正确的单元测试端点。例如,我们有一个端点创建帐户。为此,我们需要一个用户,以便他可以创建帐户。模拟它的最佳方法是什么?
目前我们这样做:
[Test]
public void UserCanAddAccountToCompany()
{
var user =
new User
{
Name = Guid.NewGuid().ToString(),
Email = Guid.NewGuid().ToString(),
Pwd = "password",
CompanyReference = new CompanyReference { Id = Guid.NewGuid().ToString(), Name = Guid.NewGuid().ToString() }
};
var response = new TestBrowser<User>("User/SignUp", user).Response;
var paramUserAccount = new ParamUserAccount()
{
User = response.Body.DeserializeJson<Result>().User,
Account = new Account() { Name = Guid.NewGuid().ToString() }
};
var response2 = new TestBrowser<ParamUserAccount>("account/create", paramUserAccount).Response;
var res = response2.Body.DeserializeJson<Result>();
Assert.NotNull(res.Account.Id);
Assert.NotNull(res.Account.Name);
}
所以我们创建一个用户,调用用户注册端点,然后从响应中获取参数并调用 creat accoutn 端点。这种方法的明显问题是,如果您更改注册端点并且由于某种原因破坏了它,那么所有这样的测试都会失败。
所以我的问题是......正确的方法是什么?
【问题讨论】:
标签: c# unit-testing nunit ravendb nancy