我的业务类有一个方法“保存”,当它被调用时,它应该自动将MyObject.AspNetUserId(一个guid属性)设置为Membership.GetUser()。然后ProviderUserKey实际执行保存。我编写了代码,但我正在测试这个问题。
在我的单元测试中,我有一行“FormsAuthentication.SetAuthCookie”,测试正在进行中。我假设这是因为我的单元测试没有在HTTP上下文中运行,所以它实际上不能设置cookie。
有没有办法让这个工作或我只需要在演示网站上手动测试它?
这是一个非常糟糕的做法,我应该做些别的事吗?这段代码的目标是让我的对象的“CreatedBy”和“EditedBy”属性自动设置,这样程序员就不必每次都记住网站代码。如果有人有更好的方法,我愿意接受各种想法。
答案 0 :(得分:1)
如何针对授权界面编写所有授权调用?这样,您可以允许在单元测试期间替换其实现,并设置调用login方法的期望。
以下是一个例子:
public interface IAuthorization
{
bool ValidateUser(LoginUser u, string password);
LoginUser GetCurrentUser();
void LogIn(LoginUser user);
void LogOut();
IIdentity GetCurrentUserIdentity();
}