Есть тестовый метод,
[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[0].Login;
target.Login = LoginTB;
TextBox PasswordTB = new TextBox();
PasswordTB.Text = now[0].Password;
target.Password = PasswordTB;
bool expected = true;
bool actual = false;
actual = target.AuthenticateUser();
Assert.AreEqual(expected, actual);
// Assert.Inconclusive("Проверьте правильность этого метода теста.");
}
который по идее должен проверять правильность работы метода AuthenticateUser
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 };
}
Тестовый метод срабатывает правильно, результат становитсья пройден, но после срабатывания тестового метода, выполнение переходит к методу Page_Load
protected void Page_Load(object sender, EventArgs e)
{ FormsAuthentication.SignOut(); }
после окончания которого результат теста переходит с пройденного, в не пройденный и выдается следующая ошибка:"Не удалось настроить канал связи с ASP.NET. ЗатребованнаÑ
Ñлужба не найдена."
1) Как лучше изменить тест в таком случае? Может программно установить, что бы не запускался метод Page_Load?
1.1) Почему Page_Load запускается не в начале, т.е. при инициализации и первом применении объекта target, а после выполнения тестового метода?
1.2) Почему вызов этого метода, после окончания и присвоения результата теста, меняет результат?
2) Когда проверяю контрольные значения и ввожу target.AuthenticateUser(), выдается сообщение:"Это выражение вызывает побочные эффекты и не будет вычислено", почему вызывается этот побочный эффект?
Сделав лучше себя, сделаешь лучше мир... Потому, что ты и есть часть этого мира...