簡體   English   中英

我真的必須以不同的方式編寫我的代碼,以便可以測試它嗎?

[英]Do I really have to do write my code differently so just so I can test it?

我是從使用ruby在Rspec和Mocha進行TDD的Rails上來到c#的。 我當時想進入一個模擬框架,一個較老的stackoverflow帖子向我指出了最小起訂量和犀牛模擬的方向。 我很猶豫要不要這樣做,並且正在尋找一些建議或澄清,或者只是一個鼓舞人心的談話...

這是我的擔憂:

  • 犀牛模型似乎有些過時了。 許多示例甚至都沒有使用泛型,因為當創建框架時,它們似乎不可用
  • Moq似乎不如Rhino模擬強大,並且似乎需要調整類以模擬它們(它們必須實現接口或所有方法必須是虛擬的)

我要離開這里嗎? 我想念什么嗎? 我是否應該了解一些很酷的新框架,還是只需要敞開心mind接受那些靜態語言的模擬是不一樣的?

(我知道過去曾問過類似的問題,但對我來說似乎有些過時,我對最新的時髦事物很感興趣)

我個人投票同意起訂量,但是選擇模擬框架確實取決於您。 我還認為,可測試性足以作為編寫不同代碼的理由。 通常,接口很難被過度使用,從長遠來看,它們可能會使您的代碼更具可維護性。

測試驅動的開發沒有使您以其他方式編寫代碼的副作用。 實際上,它旨在使您以不同的方式編寫代碼。 我們認為您在測試代碼時會寫得更好。 您更有可能將代碼隱藏在界面后面,這是一件好事。 希望它將使您以不同的方式做很多事情!

上Rhino / Moq ...

自從首次編寫Rhino Mocks以來,已經進行了一些大修,您不再需要使用記錄/重播語法,可以使用Arrange-Act-Assert語法,而且沒有魔術字符串可看。

犀牛Mo-編排言斷句法

在Moq中,您可以模擬接口和類。 語法更簡單,更具表現力。

好消息是,我認為您正在尋找最佳的兩個,並試圖在它們之間進行選擇。 我認為您不會后悔選擇其中任何一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM