2

我想测试一个主干视图,该视图在第一次实例化时最初应该在其父容器中居中。它是 UI 的一部分,允许用户在 div 内拖动元素。

此当前测试不起作用(元素的左侧和顶部设置为零)。

我意识到,由于我创建的父元素和子元素从未插入到 DOM 中,因此它们的 CSS 似乎从未采用任何值。这样做的正确方法是什么?

渲染函数:

  $(@el).css
    left: ($(@parent).width() - @el.width) / 2
    top: ($(@parent).height() - @el.height) / 2      
      @

测试代码

it("should center the element", function() {
  var size = { width: 60, height: 90};
  var parent = document.createElement('div');
  $(parent).width(size.width);
  $(parent).height(size.height);

  this.view.parent = parent;
  $(parent).append(this.view.render().el);

  var expectPosition = {
    left: ($(parent).width() - $(this.view.el).width()) / 2,
    top: (size.height - $(this.view.el).height()) / 2,
  }

      expect($(this.view.el).position()).toEqual(expectPosition);
});
4

0 回答 0