命名单元测试类和测试方法的最佳实践是什么?
之前在SO上讨论了这个问题,单元测试有哪些流行的命名约定?
我不知道这是一个非常好的方法,但是目前在我的测试项目中,我在每个生产类和测试类之间都有一对一的映射,例如Product
和ProductTest
.
在我的测试类中,然后我有方法,其中包含我正在测试的方法的名称,下划线,然后是情况和我期望发生的事情,例如Save_ShouldThrowExceptionWithNullName()
.
在Ruby中,有些方法有一个问号(?
),它会询问一个问题include?
,询问是否包含有问题的对象,然后返回true/false.
但为什么有些方法会有感叹号(!
)而其他方法却没有?
这是什么意思?
我是REST的新手,我发现在一些RESTful服务中,他们使用不同的资源URI进行更新/获取/删除和创建.如
我对这个URI命名约定有点困惑.我们应该使用复数或单数来创建资源?决定时应该有什么标准?
这是PascalCase: SomeSymbol
这是camelCase: someSymbol
这是snake_case: some_symbol
所以我的问题是,是否有这个被广泛接受的名字:some-symbol
?它常用于网址.
private const int THE_ANSWER = 42;
Run Code Online (Sandbox Code Playgroud)
要么
private const int theAnswer = 42;
Run Code Online (Sandbox Code Playgroud)
我个人认为在现代IDE中我们应该使用camelCase,因为ALL_CAPS看起来很奇怪.你怎么看?
有问题的代码在这里:
var $item = $(this).parent().parent().find('input');
Run Code Online (Sandbox Code Playgroud)
变量名中美元符号的目的是什么,为什么不排除呢?
如何在包名中单独添加单词?以下哪项是正确的?
com.stackoverflow.my_package
(下划线)com.stackoverflow.my-package
(连字符)com.stackoverflow.MyPackage
(骆驼香烟盒)什么是通用标准?
如何命名您创建的不同类/接口?有时我没有实现信息添加到实现名称 - 如接口FileHandler
和类SqlFileHandler
.
当发生这种情况时,我通常将该界面命名为"普通"名称,Truck
并命名实际的类TruckClass
.
在这方面,您如何命名接口和类?
大多数面向对象的语言都将其接口名称加上大写字母I,为什么Java不这样做呢?不遵守这一惯例的理由是什么?
为了证明我的意思,如果我想要一个用户界面和一个用户实现,我在Java中有两个选择:
- Class = User,Interface = UserInterface
- Class = UserImpl,Interface = User
在大多数语言中:
Class = User,Interface = IUser
现在,您可能会争辩说,您总是可以为用户实现选择一个最具描述性的名称,但问题就会消失,但Java正在推动POJO方法,而大多数IOC容器都广泛使用DynamicProxies.这两个因素共同意味着您将拥有许多具有单个POJO实现的接口.
所以,我想我的问题归结为:"是否值得遵循更广泛的接口命名约定,特别是考虑到Java框架似乎在哪里?"
例如,我有一个名为Purchase Service的RESTful服务.我应该命名我的存储库吗?
purchaserestservice
purchase-rest-service
purchase_rest_service
惯例是什么?在github怎么样?公共回购应遵循一些标准吗?
java ×3
c# ×1
const ×1
git ×1
github ×1
immutability ×1
interface ×1
javascript ×1
methods ×1
package ×1
resources ×1
rest ×1
ruby ×1
terminology ×1
unit-testing ×1
uri ×1