2012-06-06 26 views
1

我有一個C#項目,它的大部分複雜行爲實現爲用戶交互的電子表格的事件處理程序。我很熟悉測試代碼,但我不知道如何測試電子表格的複雜行爲(例如添加和刪除行或在用戶更改單元格值時調用第三方組件)。編碼行爲不僅與電子表格行爲糾纏在一起,而且在以編程方式更改其值時,我也無法觸發電子表格事件。我不知道該怎麼嘲笑,因爲它並沒有真正分成不同的類別。如何測試複雜的電子表格行爲?

是否有一個Selenium for WinForms或其他方式來做到這一點?

+0

我不知道,但這可能是一些幫助http://stackoverflow.com/questions/10397392/how-to-interact-with-the-windows-applications-with-gui –

+0

你需要先重構代碼,以便它是可測試的。如果它「沒有真正分解成課堂」,那麼它寫得很差。 –

+0

我同意它需要工作,而且我一直在重構類,但是如果沒有一套好的自動化測試,提取更復雜的行爲就會變得困難和風險。 –

回答

0

如果有其他人遇到這種情況,我最終使用的東西基本上是Adapter PatternMediator Pattern,這取決於你如何看待它。每個電子表格都包含一個適配器,用於格式化電子表格並與代碼進行通信。該代碼告訴中介顯示一些域對象,並填充適當的單元格並觸發適當的事件(CellEndEdit等)。用戶修改電子表格後,介體將生成的域對象提供給代碼。單元測試驗證它可以正確讀寫域對象,並在代碼作用於它時觸發正確的事件。其他測試會驗證,當用戶將正確的數據放入正確的單元格時,生成的域對象將具有正確的數據。這是額外的工作,但現在可以使行爲依賴於中介而不是電子表格。

相關問題