单元测试中方法名称前面的井号 (#) 的用途是什么?
What is the purpose of the pound (#) symbol in front of method names in unit tests?
我看到很多测试描述,例如在 Mocha 中使用方法前面的 # 符号。这样做的目的和起源是什么?多年来我一直像旅鼠一样这样做,所以我想是时候问问为什么了:)
describe('#myMethod()', function() { ... })
我第一次看到这种约定是在 Ruby 中,其中 class 方法在文本中被称为 Class.method
(或者,较少见的 Class::method
)和实例方法作为 Class#method
。标点符号的差异既可以告诉 reader 方法是什么类型,也可以消除 class 和具有相同名称的实例方法的歧义(并不是说拥有这些方法通常是个好主意)。
测试命名约定可能与 RSpec 语法(describe
、it
等)一起出现在 Javascript。
我看到很多测试描述,例如在 Mocha 中使用方法前面的 # 符号。这样做的目的和起源是什么?多年来我一直像旅鼠一样这样做,所以我想是时候问问为什么了:)
describe('#myMethod()', function() { ... })
我第一次看到这种约定是在 Ruby 中,其中 class 方法在文本中被称为 Class.method
(或者,较少见的 Class::method
)和实例方法作为 Class#method
。标点符号的差异既可以告诉 reader 方法是什么类型,也可以消除 class 和具有相同名称的实例方法的歧义(并不是说拥有这些方法通常是个好主意)。
测试命名约定可能与 RSpec 语法(describe
、it
等)一起出现在 Javascript。