在Asp.net MVC Unit测试中传递有效的登录凭据以进行有效登录

时间:2015-05-16 08:02:34

标签: c# asp.net asp.net-mvc unit-testing asp.net-mvc-4

我在本地机器上运行此测试并显示(测试通过)。 “alex”用户存在于本地数据库中,带有“123”。

我的问题是

我如何在其他服务器上运行此测试。因为我不知道凭证。(alex用户在其他服务器上不存在)换句话说,如果我在其他服务器的情况下如何传递有效凭证,或者我如何执行此测试?

[TestClass]
        public class AccountControllerTest
        {
            [TestMethod]
            public void ValidLoginTest()
            {
                string domain = "sales";
                string userName = "alex";
                string password = "123";

                var controller = new AccountController();
                var x = new LdapLoginModel { DomainName = domain, UserName = userName, Password = password };
                var result = controller.Login(x, "") as ViewResult;

                Assert.IsTrue(result.ViewData.ModelState.IsValid, "Login in passed for user: [" + userName + "]");
            }
    }


注意: 我使用的是Asp.net MVC4,SQL Server 2008

1 个答案:

答案 0 :(得分:0)

这不是单元测试,而是系统测试。 Unit test should not be dependant on the environment (database, cache, machine, etc)

对于单元测试,您应该模拟您的数据。

对于系统测试,您可以使用一些数据驱动机制,例如使用TestCaseFactory并根据环境从配置或外部资源中读取数据