1

私は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リポジトリ

4

1 に答える 1

1

わかった。だから私はこれを理解することができました。理由はよくわかりません。しかし、cssショートカットを呼び出す

.css('margin')

ターミナルでnilを返します。しかし、スペックランナーでは機能します。

ただし、特定の呼び出し:

.css('margin-top')

実際、私がここで目指していたものである「0px」を返します。

したがって、他の誰かがこれに遭遇する可能性がある場合に備えて、それは答えのように見えます:

「margin」や「padding」などのショートカットを使用すると、css値を返すことができません。

'margin-top'、'padding-left'などの詳細を使用してください...

それが他の誰かを助けることを願っています...

于 2012-08-22T22:35:09.527 に答える