为了账号安全,请及时绑定邮箱和手机立即绑定

MVC Moq框架简单测试问题

MVC Moq框架简单测试问题

慕码人8056858 2018-12-07 03:12:56
刚开始学单元测试这节,利用Moq框架作了一个最简单的测试,居然不过,求解答。 下面是Controller代码: public class TestController : Controller { // // GET: /Test/ public ActionResult Index() { return View("Index"); } } 下面是测试代码: [TestMethod] public void test() { //这里测试没问题 //TestController controller = new TestController(); //var result = controller.Index() as ViewResult; //Assert.IsNotNull(result); //用Moq框架后测试不通过 Mock<TestController> MockController = new Mock<TestController>(); TestController controller = MockController.Object; //调试后result是null,为什么? var result = controller.Index() as ViewResult; Assert.IsNotNull(result); } 为什么用Moq框架后测试不通过??
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

首先同意楼上,如果楼主是想用moq来测试的话那必须要做好重构的准备。

简单些个controller的测试吧:

         
var MockStudents = new Mock<Lsit<Student>>();
     TestController controller = New TestController(MockStudent.object);
    //这里要求你的被测试的对象由构造函数传入

var result = controller.Index() as ViewResult;
Assert.IsNotNull(result);

希望这段代码能帮到你

 

查看完整回答
反对 回复 2019-01-21
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

1,mock出来的东西要设置:MockController.Setup(c => c.Index()).Returns(...)

2,Controller是你要测的东西(SUT:subject upder test),所以不应该用Mock,应该直接new。

查看完整回答
反对 回复 2019-01-21
  • 2 回答
  • 0 关注
  • 474 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号