void SysTrayIcon::SetTrayIconID(UINT iconID)
{
niData.uID = iconID;
}
void SysTrayIcon::SetNotifyWindow(HWND hWnd)
{
niData.hWnd = hWnd;
}
void SysTrayIcon::SetTrayIcon(HICON iconHandle)
{
niData.hIcon = iconHandle;
}
void SysTrayIcon::SetTrayIconWmMsg(UINT wmMsg)
{
niData.uCallbackMessage = wmMsg;
}
void SysTrayIcon::SetTrayIconTip(LPCTSTR szMsg)
{
_tcscpy(niData.szTip, szMsg);
}
BOOL SysTrayIcon::AddIconToSysTray()
{
Shell_NotifyIcon(NIM_ADD, &niData);
return TRUE;
}
BOOL SysTrayIcon::DeleteIconFromSysTray()
{
return Shell_NotifyIcon(NIM_DELETE, &niData);
}
敏捷的宗旨是,在最短的時間內為客戶提供完整的設計,讓客戶能夠看到期待的價值,讓客戶能迅速反饋,并把反饋意見轉變為設計改進。我以上的代碼給我自己提供一個可以測試的機會。我用我的測試案例來實踐我的設計,測試程序是一個SDI視窗程序。程序運行開始先把一個圖標放入System Tray,然后,用戶可以按在程序的縮小按鈕上,程序會消失,但是System Tray里的程序圖標。用戶用鼠標左鍵雙擊System Tray里的程序圖標,程序視窗會重新出現在桌面上。用戶把鼠標光標移到System Tray里的程序圖標上,一秒鐘后就會一個提示標題出現,顯示程序的名稱。當我關閉程序視窗,視窗消失,System Tray里的程序圖標也一并消失。這就是我的第一個測試。這個測試案例運行,不會出現任何問題。
我寫的第一個案例是開發者通常會做的測試,一個簡單的案例保證設計到達最基本的用戶需求。作為認真的開發者,和有專業意識的QA,這樣簡單的測試根本不夠。各種各樣的邊界問題會通過設計的空隙造成程序運行異常。我就設計了另一個測試邊際問題的測試,代碼如下:void UnitTestCase1(HWND hWnd, HICON handleIcon)
{
gSysTrayIcon.AddIconToSysTray();
文章來源于領測軟件測試網 http://www.kjueaiud.com/