【发布时间】:2012-02-12 17:11:18
【问题描述】:
我有一个包含不同项目的解决方案,一个是 MVC 3 项目,另一个是测试项目。
在测试项目中,我正在尝试测试我的控制器行为。但是当我运行测试时,系统会抛出一个错误告诉我:
System.IO.FileNotFoundException:无法加载文件或程序集“System.Web.Mvc,版本=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。
警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD) 设置为 1。
来自测试操作系统的代码如下:
[TestMethod]
public void TestMethod()
{
var myService = new Mock<IMyService>();
myService.Setup(a => a.ReadAuthorizationRequest())
.Returns<EndUserAuthorizationRequest>(null);
int error = 0;
var controller = new myController(myService.Object);
try
{
var actionResult = controller.Authorize();
}
catch (HttpException exception)
{
error = exception.GetHttpCode();
}
Assert.AreEqual(403, error);
}
控制器:
public class myController: Controller
{
private readonly IMyService _service;
public OAuthController(IMyService service)
{
_service = service;
}
[Authorize, AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Authorize()
{
ClientApplication requestingClient;
var request = _service.ReadAuthorizationRequest();
if (request == null)
{
throw new HttpException((int) HttpStatusCode.BadRequest,
"Missing authorization request.");
}
}
}
如您所见,我正在尝试测试控制器的行为,因此,每当服务未读取请求时,控制器应抛出带有 httpStatusCode 403 的 httpException。
这有什么问题。先感谢您。
【问题讨论】:
标签: asp.net asp.net-mvc-3 c#-4.0