私のサービスレイヤの1つに私の最初のユニットテストを書こうとしています。私は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を持つユーザーオブジェクトを作成する必要があるかどうかはわかりません。
私はそれを嘲笑することができるかどうかわかりませんが、プライベートなので疑問です。
2番目の問題は、 "id"として "id"を作成する方法が、nhibernateで使用されている標準であるためプライベートセットを持つドメインクラスに作成されているかどうかわかりません。
だから私はそれを回避する方法がわかりません。
何コードテストしたいですか? 'GetPermissions'や「//その他のもの」? –
dv-Jan de Vaan-私が推測する他のもの。基本的にif文は、権限があるかどうかを確認して、良いものを作成する(私のレポの別のもの)。そうでなければ、検証エラーです。私は最初にこの方法で取得する必要がありますし、カウンターを0より返す必要があります。 – chobo2