none
Где лучше задать вопрос по тестированию? RRS feed

  • Вопрос

  • Есть тестовый метод,

      [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(), выдается сообщение:"Это выражение вызывает побочные эффекты и не будет вычислено", почему вызывается этот побочный эффект?

     


    Сделав лучше себя, сделаешь лучше мир... Потому, что ты и есть часть этого мира...
    18 марта 2011 г. 7:39

Ответы