繁体   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