亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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條經驗 獲得超8個贊

1,mock出來的東西要設置:MockController.Setup(c => c.Index()).Returns(...)

2,Controller是你要測的東西(SUT:subject upder test),所以不應該用Mock,應該直接new。

查看完整回答
反對 回復 2019-01-21
  • 2 回答
  • 0 關注
  • 527 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號