我正在查看使用ASP.NET編寫的遺留企業應用程序。沒有控件或Web表單。這是如何工作的:如何使ASP.NET Webforms應用程序可測試?
EmployeeList.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EmployeeList.aspx.cs" Inherits="EmployeeList" %>
EmployeeList.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
// Security Check
// Load Template, get version 1.4 of active employee list
StringBuilder template = GetTemplate("Employee", "ActiveList", "1.4", true);
// Get list from database
using(SqlDataReader objReader = GetListFromDB())
{
while(objReader.Read())
{
//fills data
TUtils.Replace(template, ROW, "%name%", objReader[0]);
}
}
// return response
Response.Write(template.ToString());
}
private StringBuilder GetTemplate(string x, string y, string v, bool z);
{
// returns template
}
private SqlDataReader GetListFromDB() {
// returns data reader
}
我的問題是,因爲我們沒有使用web表單,有沒有辦法在這個事件驅動模型中引入NUnit(如上所示)?
另外,請避免建議移動到ASP.NET MVC或其他圖案,這是我們正在考慮,但不知道有沒有什麼辦法來轉換這個企業應用程序測試。
沒有簡單的答案在這裏。將所有想要測試的邏輯移動到可測試的地方(例如,這意味着要轉移到MVP/MVC類型的設計)。也許我的帖子 - http://madcoderspeak.blogspot.com/2012/02/gui-testing-rehab-can-we-start-saying.html可以讓你開始。只是在心裏翻譯GUI到WebGUI。 – Gishu 2012-02-22 05:37:32