Gntnt中PhantomJS和Qunit测试之间的差异?

时间:2012-08-21 22:22:19

标签: jquery-plugins tdd qunit phantomjs gruntjs

我正在用Grunt和TDD编写我的第一个jQuery插件,到目前为止它真棒。我的所有测试都在浏览器中传递,除了这个测试之外的所有测试都在传递phantomjs / qunit。

但我确信我在这里错过了一些东西。我有一个测试,它获取jQuery添加的边距的css值。

  test('adds appropriate styles to image', 1, function() {
    this.simpleString.adaminNumReplace();
    var newMargin = this.simpleString.find('> img:first').css('margin');
    strictEqual(newMargin, '0px', 'margin is equal to default');
  });

当我使用跑步者在浏览器中测试时,测试通过。当我目视检查检查员。如果我console.log值。一切似乎都很好,并指向'0px'。

但在终端窗口中,测试失败:

$.fn.adaminNumReplace() - adds appropriate styles to image
Message: margin is equal to default
Actual: ""
Expected: "0px"
at file:///Applications/MAMP/htdocs/adamin_number_replace/libs/qunit/qunit.js:357

是否有任何理由让phantomjs无法获取css边际值?它说实际是“”。但它肯定是'0px'。

任何见解或想法都会非常感激!

完整的回购在这里,万一有帮助:Github Repo

1 个答案:

答案 0 :(得分:1)

好。所以我能够弄清楚这一点。我不完全确定为什么。但是调用css快捷方式

.css('margin')

在终端中返回nil。但是在规范运行中是否有效。

但是,请致电具体:

.css('margin-top')

实际上是否会返回'0px',这就是我在这里的目的。

所以它看起来像答案,万一其他人可能碰到这个:

使用'margin'或'padding'等快捷方式时,我无法返回css值。

使用'margin-top','padding-left'等详细信息......

希望能帮助别人......