[TestMethod()] [HostType("ASP.NET")] [AspNetDevelopmentServerHost("C:\\Documents and Settings\\islam\\мои документы\\visual studio 2010\\Projects\\CustomersSolution\\Customers", "/")] [UrlToTest("http://localhost:50393/Login.aspx")] [DeploymentItem("Customers.dll")] public void AuthenticateUserTest() { TrueLogin_Accessor target = new TrueLogin_Accessor(); List<Customers.Models.Customer> now = (new CustomersDBEntities()).Customers.ToList(); //((Label)(target.FindControl("Login"))).Text = now[0].Login; //((Label)(target.FindControl("Password"))).Text = now[0].Password; TextBox LoginTB = new TextBox(); LoginTB.Text = now[1].Login; target.Login = LoginTB; TextBox PasswordTB = new TextBox(); PasswordTB.Text = now[1].Password; target.Password = PasswordTB; bool expected = true; bool actual = false; actual = target.AuthenticateUser(); Assert.AreEqual(expected, actual); }
private bool AuthenticateUser() { SimpleMembershipProvider S = new SimpleMembershipProvider(); if (S.ValidateUser(Login.Text.ToString(), Password.Text.ToString())) { Customer currentCustomer = S.AllCustomers.Find(m => m.Login == Login.Text.ToString()); List<Order> currentOrders = (new CustomersDBEntities()).Order.Where(m => m.IDCustomer == currentCustomer.IDCustomer).ToList(); CurrentMember currentMember = new CurrentMember(currentCustomer, currentOrders); Session["currentMember"] = currentMember; FormsAuthentication.RedirectFromLoginPage(currentCustomer.Name, false); return true; } else { return false; }; }
protected void Page_Load(object sender, EventArgs e) { FormsAuthentication.SignOut(); }
1) Как лучше изменить тест в таком случае? Может программно установить, что бы не запускался метод Page_Load?
1.1) Почему Page_Load запускается не в начале, т.е. при инициализации и первом применении объекта target, а после выполнения тестового метода?
1.2) Почему вызов этого метода, после окончания и присвоения результата теста, меняет результат?
2) Когда проверяю контрольные значения и ввожу target.AuthenticateUser(), выдается сообщение:"Это выражение вызывает побочные эффекты и не будет вычислено", почему вызывается этот побочный эффект?