當我們想要限制或加長 ASP.NET 可執行的時間長度時,通常都會到 web.config 的 <system.web> 區段新增一個 httpRuntime 元素並且指派 executionTimeout 屬性一個秒數,像是我們在設定檔案上傳的程式時,由於上傳檔案的執行時間可能會超過系統的預設值( 110 秒 ),所以這時我們就必須把這個數值調大。當然你也可以將這個數值縮小,以免過多、過長的執行要求把伺服器拖垮。不過,在 ASP.NET MVC 裡有一個鮮為人知的秘密,那就是 ASP.NET MVC 根本不吃這套,預設執行時間是沒有上限的,所以你的 ASP.NET MVC 程式要是出問題,那可是會執行到天荒地老海枯石爛的,最慘的狀況就是 IIS 的 Request Queue 被塞爆。
... 繼續閱讀 ...
有寫 ASP.NET MVC 的人應該瞭解,當部署 ASP.NET MVC 網站時通常都必須先在伺服器端安裝 ASP.NET MVC 執行環境 (Runtime) 才能正常執行,這個安裝的步驟主要是將 ASP.NET MVC 組件註冊進 GAC (Global Assembly Cache) 中,這點安裝步驟其實還算容易,不過並不是所有系統管理者都願意幫你做這一步,所以若要將組件一一內嵌到 Bin 目錄下就必須特別設定,但 ASP.NET MVC 3 with Razor Syntax 的設定比 ASP.NET MVC 2 的設定複雜許多,今天我就來教各位一個最無腦的設定法,又快又精準的一次設定到好!
... 繼續閱讀 ...
由於我用 Visual Studio 2010 單鍵部署功能 (建置部署套件) 用的很兇,且剛好 ASP.NET MVC 也用的更兇,這兩個很兇的玩意湊在一起卻有些地方不太相容,問題雖然不大,但第一次遇到此問題也是花了我不少時間釐清問題,不過真像只有一個,就讓我娓娓道來。
... 繼續閱讀 ...
透過 Visual Studio 裡的整合開發環境 (IDE) 結合單元測試開發是再便利不過的了,在 Visual Studio 開發工具中已經內建一套 Visual Studio Unit Testing 框架 (Framework),可以方便協助你開發各式單元測試或整合測試的程式,工欲善其事、必先利其器,要善用他就必須先瞭解他,否則還是會事倍功半的,本篇文章會著重在 Visual Studio Unit Test 框架的概要介紹與快速上手的注意事項。
... 繼續閱讀 ...
有了前 5 篇的觀念支持,我們要開始對 ASP.NET MVC 專案的各個部分進行單元測試了,接下來的文章就會是一篇一篇的單元測試開發技巧,如果各位還有觀念上不清楚的地方,我會再用其他文章來解釋模稜兩可的觀念,尤其是介於「單元測試」與「整合測試」之間的灰色地帶或 TDD (測試導向開發) 等觀念,我想總要先讓各位先打從心裡願意開始撰寫單元測試比較重要吧!今天的文章會講解 ASP.NET MVC 的 Routing 路由規則如何進行單元測試。
... 繼續閱讀 ...
前天的文章我介紹了 Mock 假物件 (Fake Object),今天要講另一種假物件稱為 Stub 假物件,這種假物件目的與用途都跟 Mock 非常相近,總之就是為了讓單元測試程式可以順利執行而生的一種開發方式,這兩種假物件類型在單元測試的領域都非常重要,而且各有各的存在必要性,在日後單元測試的日子裡都會經常用到這兩個東西。
... 繼續閱讀 ...
透過前三篇的系列文章,不知道初學者能不能上手開發單元測試,畢竟這對許多人來說是個新玩意,不只是單元測試是新的,可能許多人連 ASP.NET MVC 都沒玩過,那就更難跟上了,不過只要有心,人人都可以當大師 (靈感來自於周星馳經典台詞之食神)。若你開發的是 ASP.NET MVC Web 應用程式,到底單元測試要測試些什麼?可以測試些什麼?測試的範圍又是多少呢?
... 繼續閱讀 ...
我們在上一篇已經得知「可測試性」的思考方向,在本篇文章我們將利用 Mocking 技術強化之前修改過的測試程式,讓我們的單元測試程式可以完全脫離「外部資源」的魔掌 (在此範例是指資料庫連線),我們將使用 moq 工具函式庫協助我們的測試程式更容易、更快速的撰寫,至於 moq 的安裝可參考 moq 官網或 ASP.NET MVC 2 開發實戰 一書【12-3-7 利用Mock假物件完成單元測試】章節的說明 ( P.398 )。
... 繼續閱讀 ...
為什麼人家說 ASP.NET MVC 的可測試性很高?這是真的嗎?為什麼實際在寫 ASP.NET MVC 單元測試的時候卻綁手綁腳的,很多時候連怎麼開始寫測試程式都摸不著頭緒。由於 Web 環境下能開發的功能很多,程式碼的多樣性也很大,有時後複雜度也很高,寫出能動的程式已經不容易了,所以以往總是用隨心所欲的方式開發,不過現在不能這樣寫了,為了讓開發過程中都能不斷的撰寫單元測試,有時後你必須妥協,寫程式的時候要時時刻刻想到你寫的這行程式碼需要被測試,所以你要套用一些 設計樣式 (Design Pattern) 來撰寫程式,好讓你未來撰寫測試的日子更加好過。
... 繼續閱讀 ...