'Mockito文档中的'SRPy'是什么意思?

10

来自http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html

通常情况下您会看到部分模拟的警告: 面向对象编程通过将复杂性分割成单独、具体、SRPy对象来解决复杂性。那么,部分模拟如何适应这种范式呢?嗯,它根本不适应...部分模拟通常意味着将复杂性移动到同一对象的另一个方法中。在大多数情况下,这并不是您希望设计应用程序的方式。


3
http://en.wikipedia.org/wiki/Single_responsibility_principle - Sam Dufel
1
我原以为是那样的,但是被“y”字母搞糊涂了。我猜他们是用它来表示“ish”或“-like”的意思? - joshbodily
1个回答

12
根据Mockito的官方文档中对于Spy的说明
Spy对象通常与“部分模拟”概念相关联。但是,Mockito Spy对象不是部分模拟。Mockito Spy旨在帮助测试其他类 - 而不是用作被间谍监视的对象本身。因此,如果您想验证方法是否调用了同一对象上的另一个方法,则该Spy将无法提供帮助。在这种情况下,建议遵循OO / SRP(例如,您可以提取新类/接口...)。
OO是面向对象的缩写,SRP表示单一职责原则。这是一种设计模式,指出类应该具有一个且仅有一个职责,并在这种情况下,您倾向于编写不需要测试内部方法是否被调用的代码。
参考链接:http://en.wikipedia.org/wiki/Single_responsibility_principle

好的,这是一个原则,而不是设计模式,但是没错。 - Sam Dufel
什么是区别? - sam boosalis
我猜这和Python没有关系,为什么不直接称它为SRP呢?‘y’是怎么回事? - nullsteph
1
这是一种非标准的英语副词构词方式,如“dirt -> dirty”。 - Matt Quigley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接