我正在尝试为我的一个服务层编写我的第一个单元测试。我正在使用nunit和moq(最新版本)。如何进行单元测试
我有一个回购,但我会嘲笑那是没有问题的。
public void Create(string email, int id)
{
User user = Repo.GetUserByEmail(email); // mock this out. and return a mocked user.
if user != null)
{
// check permission
var clearence = GetPermissions(user, PermissionTypes.Add, id);
// some other stuff
}
}
private static List<Permissions> GetPermissions(User user, PermissionTypes PermissionNeeded, int id)
{
List<PermissionLevel> clearence = user.PermissionLevels.Where(u => u.id == id &&
(u.Permission.Name == PermissionNeeded || u.Permission.Name == PermissionTypes.Owner)).ToList();
return clearence;
}
这就是我所拥有的。
现在得到我的是这个许可。我不知道该怎么做。我不确定是否必须创建一个包含id的permissionLevels的用户对象。
我不确定我是否可以嘲笑它,但我怀疑它,因为它是私人的。
第二个问题是我不知道如何创建一个“id”,因为“id”是在一个具有私有设置的域类中,因为那是用于nhibernate的标准。
所以我不知道如何解决这个问题。
你要测试的代码? `GetPermissions`或者“//其他的东西”? – 2011-02-01 21:25:43
dv-Jan de Vaan-我猜的其他东西。基本上是if语句来检查权限,然后如果好的话创建任务(我的回购中有另一件事)。如果没有,那么验证错误。我需要首先通过这种方法,但它必须返回一个大于0的计数器。 – chobo2 2011-02-01 21:31:56