2010-04-21 64 views
1

我期待跳過某個語句在我的單元測試,如:屬性跳過聲明單元測試C#

if (MessageBox.Show("Are you sure you want to remove " + contact.CompanyName + " from the contacts?", "Confirm Delete", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) == MessageBoxResult.Yes) 

有一個屬性,我可以把上面的語句,避免了單元測試執行它?

+0

你正在使用什麼單元測試框架? – Oded 2010-04-21 14:38:15

+0

你在使用NUnit框架嗎? – KhanS 2010-04-21 14:48:38

+0

我只是從visual studio 2010創建一個新的測試項目,不確定框架 – 2010-04-21 14:53:08

回答

4

您應該儘量避免直接調用您正在進行單元測試的類中的GUI組件。一個辦法解決,這將是創建一個接口,說IMessageBoxDisplayService,可以滅掉的測試

public MyClass(IMessageBoxDisplayService messageBoxDisplayService) 
{ 
    ... 
    if (messageBoxDisplayService.Show(message)) ... 
+0

Ok聽起來像是最好的前進方向,但是有沒有一個屬性會跳過界面中的語句 - 無論語句如何? – 2010-04-21 14:52:09

+0

您可以使用條件屬性跳過方法。 – 2010-04-23 21:34:01

3

您也可以嘗試使用Moles存根出調用的MessageBox.show()。