我正在嘗試爲我的一個服務層編寫我的第一個單元測試。我正在使用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