Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用模拟框架(Moq)进行MVC测试_Asp.net Mvc_Unit Testing_Asp.net Mvc 2_Moq - Fatal编程技术网

Asp.net mvc 使用模拟框架(Moq)进行MVC测试

Asp.net mvc 使用模拟框架(Moq)进行MVC测试,asp.net-mvc,unit-testing,asp.net-mvc-2,moq,Asp.net Mvc,Unit Testing,Asp.net Mvc 2,Moq,我正在使用Moq来帮助测试我的ASP.NET MVC2应用程序 问题:用户代码未处理ArgumentException。无法获取StrongNameKeyPair的公钥 此代码改编自Scott Hanselman的NerdDinner1 HomeController CreateHomeControllerAs(string userName) { var mock = new Mock<ControllerContext>(); mock.S

我正在使用Moq来帮助测试我的ASP.NET MVC2应用程序

问题:用户代码未处理ArgumentException。无法获取StrongNameKeyPair的公钥

此代码改编自Scott Hanselman的NerdDinner1

HomeController CreateHomeControllerAs(string userName)
    {
        var mock = new Mock<ControllerContext>();
        mock.SetupGet(p => p.HttpContext.User.Identity.Name).Returns(userName); // fails here
        mock.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true);

        var controller = new HomeController();
        controller.ControllerContext = mock.Object;

        return controller;
    }

    [TestMethod]
    public void should_be_able_to_get_to_index_page_logged_in()
    {
        HomeController controller = CreateHomeControllerAs("dave");
    }
HomeController创建HomeControlleras(字符串用户名)
{
var mock=new mock();
mock.SetupGet(p=>p.HttpContext.User.Identity.Name).Returns(userName);//此处失败
SetupGet(p=>p.HttpContext.Request.IsAuthenticated)。返回(true);
var controller=新的HomeController();
controller.ControllerContext=mock.Object;
返回控制器;
}
[测试方法]
public void应该能够获取索引页面登录()
{
HomeController=CreateHomeControllerAs(“dave”);
}

使用最小起订量引用。。。WinXP下的VS2010。

您的代码没有问题。我刚刚测试过,效果很好。问题在于
Moq
组件。您需要向
C:\Documents and Settings\AllUsers\ApplicationData\Microsoft\Crypto\RSA\MachineKeys
文件夹授予特定权限。结帐


另外,在Windows资源管理器中右键单击
Moq.dll
,并在属性中确保它未被锁定。从internet下载某些DLL时,Windows会自动对其应用受限权限。

Awesome。。我也写了一篇关于这个的博客文章