我正在用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
答案 0 :(得分:1)
好。所以我能够弄清楚这一点。我不完全确定为什么。但是调用css快捷方式
.css('margin')
在终端中返回nil。但是在规范运行中是否有效。
但是,请致电具体:
.css('margin-top')
实际上是否会返回'0px',这就是我在这里的目的。
所以它看起来像答案,万一其他人可能碰到这个:
使用'margin'或'padding'等快捷方式时,我无法返回css值。
使用'margin-top','padding-left'等详细信息......
希望能帮助别人......