我在Coffeescript中有一个自定义的Backbone.Collection类。
我将其命名(它负责分页):
class SI.PaginatedCollection extends Backbone.Collection
我想编写Jasmine规范,测试我是否会扩展该特定类。
对不起我的英语,我现在可能很恐怖。 ;)
PS 我可以解析Javascript,但Coffeescript会很理想。
答案 0 :(得分:9)
对我来说测试这个似乎有些过分,但你可以这样做:
describe "SI.PaginatedCollection", ->
beforeEach ->
@collection = new SI.PaginatedCollection()
it "is a subclass of Backbone.Collection", ->
expect(@collection instanceof Backbone.Collection).toBeTruthy()
如果你要经常检查instanceof
和/或你关心描述性的Jasmine输出,那么制作一个自定义匹配器是值得的,所以你可以这样写:
expect(@collection).toBeInstanceOf(Backbone.Collection)
答案 1 :(得分:3)
在Jasmine 2.0中,您可以使用jasmine.any()
匹配器。 E.g:
collection = new SI.PaginatedCollection();
expect(collection).toEqual(jasmine.any(Backbone.Collection));
中所述
答案 2 :(得分:0)
没有正确的方式来获取super
引用,也没有使用JavaScript,但是在{@ 3}}中,即使使用the __super__
Backbone method也不建议使用the documentation。
我认为最干净的方法是使用伪静态属性手动品牌你的子类,如:
var SI.PaginatedCollection = Backbone.Collection.extend({
parent: "Backbone.Collection"
});
每当您需要检查某个实例来自特定的父级时,只需检查myInstance.parent
。