В модульном тестировании Jquery с Qunit и JSMockito (или другой платформой?) Вывод не работает должным образом - PullRequest
1 голос
/ 03 мая 2011

Я новичок в модульном тестировании в Javascript, и у меня возникли проблемы с адаптацией моего понимания модульного тестирования с Java на Javascript.У меня есть код ниже, который я пытаюсь сделать, в основном я просто хочу издеваться над функцией divide.В настоящее время, когда я пытаюсь сделать это, он просто говорит, что тесты не выполняются.Я открыт для предложений по использованию другой фреймворк-фреймворки, я смотрел несколько уроков, но просто не могу обернуться вокруг насмешек по javascript.Любой совет приветствуется.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <link rel="stylesheet" href="http://code.jquery.com/qunit/git/qunit.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://code.jquery.com/qunit/git/qunit.js"></script>
<script type="text/javascript" src="http://witnesstreefiles.s3.amazonaws.com/development/jsmockito-1.0.3-minified.js"></script>

  <script>
  function divide(a,b)
  {
    return a / b;
  }


  $(document).ready(function(){


      mockFunc = mockFunction();
      when(mockFunc)(anything()).then(function(arg) {
          return "foo ";
        });


      divide = mockFunc



        module("Basic Unit Test");
        test("Sample test", function()
        {
           expect(1);
           equals(divide(4,2),
            2,
            'Expected 2 as the result, result was: ' + divide(4,2));
        });
  });
  </script>

</head>
<body>
  <h1 id="qunit-header">QUnit example</h1>
 <h2 id="qunit-banner"></h2>
 <div id="qunit-testrunner-toolbar"></div>
 <h2 id="qunit-userAgent"></h2>
 <ol id="qunit-tests"></ol>
 <div id="qunit-fixture">test markup, will be hidden</div>
</body>
</html>

1 Ответ

6 голосов
/ 04 мая 2011

Две проблемы:

1) Вам необходимо включить JsHamcrest: http://jshamcrest.destaquenet.com/ Например,

<script type="text/javascript" src="https://github.com/downloads/danielfm/jshamcrest/jshamcrest-0.5.2-minified.js"></script>

2) Вам нужно включить JsHamcrest и JsMockito в QUnit, выполнивзапуск соответствующих функций javascript (лучше всего внутри вашего блока скриптов):

JsHamcrest.Integration.QUnit();
JsMockito.Integration.QUnit();

cheers, chris

...