{"id":189216,"date":"2013-08-09T16:40:06","date_gmt":"2013-08-09T12:40:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=189216"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=189216","title":{"rendered":"<span class=\"post_title\">test.it \u2014 \u043d\u0435 \u043e\u043f\u044f\u0442\u044c \u0430 \u0441\u043d\u043e\u0432\u0430<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c \u0445\u0430\u0431\u0440.<br \/>  \u041f\u043e\u0441\u043b\u0435 \u043c\u043e\u0435\u0439 <a href=\"http:\/\/habrahabr.ru\/post\/188268\/\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a> \u043e <b>test.it<\/b> \u043f\u0440\u043e\u0448\u043b\u0430 <s>\u0432\u0435\u0447\u043d\u043e\u0441\u0442\u044c<\/s> \u043d\u0435\u0434\u0435\u043b\u044f. \u0418 \u043a\u0430\u043a \u044f \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0440\u043e\u043a \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0430 \u043c\u0435\u0441\u044f\u0446, \u043d\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<br \/>  \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/031\/d27\/795\/031d27795e16fab6d508d21878f00c2f.png\"\/><br \/>  \u0421 \u0442\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <i>(\u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0445\u0430\u0431\u0440\u0430\u0432\u0447\u0430\u043d\u0430\u043c)<\/i> \u043e\u0431\u0440\u043e\u0441\u043b\u0430 \u043d\u043e\u0432\u044b\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c.<br \/>  \u0410 \u0432\u0432\u0438\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u043e\u0442\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0435\u0449\u0451 \u043d\u0430 3 \u043d\u0435\u0434\u0435\u043b\u0438 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442\u0443 \u043f\u0440\u0430\u0432\u0430.<\/p>\n<p>  \u041a\u0442\u043e \u043d\u0435 \u043b\u044e\u0431\u0438\u0442 \u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432 \u2014 <a href=\"http:\/\/titulus.github.io\/testit\/\">\u0421\u0430\u0439\u0442<\/a> \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043a\u043e\u0434 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438, <a href=\"https:\/\/github.com\/titulus\/testit\">GitHub<\/a>, <a href=\"https:\/\/github.com\/titulus\/testit\/wiki\">Wiki<\/a><br \/>  <a name=\"habracut\"><\/a><br \/>  \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0446\u0435\u043f\u043e\u0447\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b  <\/p>\n<pre><code class=\"javascript\">test.it(some)      .comment('comment to test')      .callback(function(){alert('test has been passed')})      .arguments(); \/\/ -&gt; [some] test.group('group', function(){ ... })      .comment('comment to group')      .result(); \/\/ -&gt; true\/false <\/code><\/pre>\n<p>  \u0438 \u043d\u043e\u0432\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438  <\/p>\n<pre><code class=\"javascript\">test.group('first group',function(){   ...   test.group('second group', function(){     ...   });   ... }); test.group('first group').group('second group',function(){ ... }); <\/code><\/pre>\n<p>  \u041d\u043e\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/328\/cbe\/255\/328cbe255385d38584701b7f3135da94.png\" alt=\"error\"\/><\/p>\n<p>  \u0418 \u0434\u0432\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430 <b>test.typeof()<\/b> \u0438 <b>test.trace()<\/b>.<\/p>\n<p>  \u0410 \u0442\u0430\u043a \u0436\u0435 3 <a href=\"https:\/\/github.com\/titulus\/testit\/wiki\">Wiki<\/a>-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.<\/p>\n<h3>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u043e \u0432\u0441\u0451\u043c \u044d\u0442\u043e\u043c \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/h3>\n<p>  \u0418 \u0442\u0430\u043a. \u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432 <a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/etc#example\">wiki<\/a>:<\/p>\n<p>  \u041f\u043e\u043a\u0430 \u043c\u044b \u0435\u0449\u0451 \u043d\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043a \u0442\u0435\u0441\u0442\u0430\u043c, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c <b>test.typeof()<\/b>.  <\/p>\n<pre><code class=\"javascript\">console.log(     test.typeof(1)    ,test.typeof(&quot;text&quot;)    ,test.typeof([1,2,3])    ,test.typeof({a:1,b:2})    ,test.typeof()    ,test.typeof(document)    ,test.typeof(document.getElementsByTagName(&quot;body&quot;))    ,test.typeof(window)    ,test.typeof(\/yes it is RegExp\/) \/\/ and many many more ... ); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.typeof\">test.typeof()<\/a> \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0435\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u041e\u043d \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c: <i>Array<\/i>, <i>Boolean<\/i>, <i>Date<\/i>, <i>Error<\/i> (<i>EvalError<\/i>, <i>RangeError<\/i>, <i>ReferenceError<\/i>, <i>SyntaxError<\/i>, <i>TypeError<\/i>, <i>UriError<\/i>), <i>Function<\/i>, <i>NaN<\/i> \u0438 <i>Number<\/i>, <i>Object<\/i>, <i>RegExp<\/i>, <i>String<\/i>, <i>Window<\/i>, <i>HTML<\/i>, <i>NodeList<\/i>. \u0410 \u0435\u0449\u0451 \u043e\u043d \u043f\u0443\u0441\u0442\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442 \u043a\u0430\u043a <i>&#8216;undefined&#8217;<\/i> \u043d\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e <b>typeof<\/b> \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e. \u0417\u0430 \u0442\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442 <i>&#8216;undefined&#8217;<\/i> \u043d\u0430 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0438 \u043d\u0435\u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u041d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430 \u044f\u0437\u044b\u043a\u0430.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0442\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/db8\/d19\/cb1\/db8d19cb1f3e3edda770a0707dfeabac.png\" alt=\"typeof\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043c\u0435\u0442\u043e\u0434 <b>test.trace()<\/b>.  <\/p>\n<pre><code class=\"javascript\">(function firstFunction() {     (function secondFunction() {         (function lastFunction() {             console.log(test.trace());         })();     })(); })(); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.trace\">test.trace()<\/a> \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a <i>(\u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0432 \u0441\u0442\u0440\u043e\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 &quot;\\n&quot;)<\/i> \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430.<\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u044d\u0442\u043e \u043d\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 <b>trace()<\/b> <i>(\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435\u0442\u0443 \u0432 JavaScript)<\/i>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u0437 \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u043d\u044b \u0432\u0441\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043e \u0432\u044b\u0437\u043e\u0432\u0430\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<p>  \u041a \u0432\u044b\u0432\u043e\u0434\u0443 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/8f2\/2ce\/b04\/8f22ceb040fd6320f78cb5a1c6b9f7a0.png\" alt=\"trace\"\/><br \/>  <sub>\u0417\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u0435\u0435 \u043d\u0435 \u0437\u043d\u0430\u0447\u0430\u0449\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0431\u044b \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439.<\/sub><\/p>\n<h3>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0442\u0435\u0441\u0442\u0430\u043c.<\/h3>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0438 \u043f\u0443\u0441\u0442\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e.  <\/p>\n<pre><code class=\"javascript\">var Family = {     name: &quot;Desiderio&quot;,     pet: {         type: &quot;dog&quot;,         name: &quot;google&quot;     },     members: [         {             name: &quot;Titulus&quot;,             age: 23         },         {             name: &quot;Dude&quot;,             age: Infinity         }     ] }  var myIQ = 100;  var Nothing; <\/code><\/pre>\n<p>\u0414\u0443\u043c\u0430\u044e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043a\u0430\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e.<\/p>\n<p>  \u041f\u043e\u0435\u0445\u0430\u043b\u0438 \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u0441\u0442.  <\/p>\n<h3>\u0422\u0435\u0441\u0442 \u043d\u0430 \u043d\u0435-\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c.<\/h3>\n<p>  \u0422\u0443\u0442 \u0432\u0441\u0451 \u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u044c\u0448\u0435.  <\/p>\n<pre><code class=\"javascript\">test.it(&quot;hello world&quot;);  test.done(); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.it-nonfalse\">test.it( value )<\/a> \u2014 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0442\u0435\u0441\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044f <i>value<\/i> \u043d\u0430 \u043d\u0435-\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c.<br \/>  <a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.done\">test.done()<\/a> \u2014 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0442\u0435\u0441\u0442\u044b \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c.<br \/>  <sub>\u0414\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e <b>test.done()<\/b> \u0438\u0434\u0451\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u044f \u0431\u0443\u0434\u0443 \u0435\u0433\u043e \u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c.<\/sub><\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/391\/999\/113\/3919991135f6be5f3ffd18903a59f641.png\" alt=\"root\"\/><br \/>  \u0413\u0434\u0435:  <\/p>\n<ul>\n<li><b>root<\/b> \u2014 \u0438\u043c\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.<\/li>\n<li><font color=\"green\">pass<\/font> \u2014 \u0441\u0442\u0430\u0442\u0443\u0441 \u0433\u0440\u0443\u043f\u043f\u044b, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u0447\u0442\u043e \u0432\u0441\u0435 \u0442\u0435\u0441\u0442\u044b\/\u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u043d\u0435\u0439 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e.<\/li>\n<li><font color=\"green\">1<\/font>\/<font color=\"red\">0<\/font>\/<font color=\"orange\">0<\/font> \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0445\/\u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043d\u044b\u0445\/\u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432\/\u0433\u0440\u0443\u043f\u043f.<\/li>\n<li>(<font color=\"blue\">9<\/font> ms) \u2014 \u0432\u0440\u0435\u043c\u044f \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u0442\u0435\u0441\u0442\u044b.<\/li>\n<\/ul>\n<p>  \u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u0443 \u0433\u0440\u0443\u043f\u043f\u0443, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0435\u0441\u0442\u043e\u0432\/\u0433\u0440\u0443\u043f\u043f \u0432 \u043d\u0435\u0439.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/d80\/32b\/09e\/d8032b09eaaff65c732d685601fa0efe.png\" alt=\"root expanded\"\/><br \/>  \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043d\u0430\u0448 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u0441\u0442, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u043a\u0440\u043e\u0435\u043c \u0438 \u0435\u0433\u043e:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/415\/74f\/6eb\/41574f6eb9711f72f5cffd2f7a34d86e.png\" alt=\"test expanded\"\/><br \/>  \u0418 \u0442\u0430\u043a:  <\/p>\n<ul>\n<li><font color=\"green\">pass<\/font> \u2014 \u0441\u0442\u0430\u0442\u0443\u0441 \u0442\u0435\u0441\u0442\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0439\u0434\u0435\u043d<\/li>\n<li>argument is not false \u2014 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u0442\u0435\u0441\u0442\u0430 \u0438 \u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/li>\n<li><i>[<font color=\"red\">\u00abhello world\u00bb<\/font>]<\/i> \u2014 \u043c\u0430\u0441\u0441\u0438\u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u0443<\/li>\n<\/ul>\n<p>  <\/p>\n<h3>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c <a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#chaining\">\u0446\u0435\u043f\u043e\u0447\u043d\u043e\u0441\u0442\u0438<\/a>.<\/h3>\n<p>  \u0421\u0430\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f:  <\/p>\n<pre><code class=\"javascript\">test.it(2+2==5)     .comment(&quot;i badly taught algebra at school&quot;); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-.comment\">.comment( text )<\/a> \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043a \u0442\u0435\u0441\u0442\u0443\/\u0433\u0440\u0443\u043f\u043f\u0435, \u0432 \u0447\u044c\u0435\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0435 \u043e\u043d \u0431\u044b\u043b \u0432\u044b\u0437\u0432\u0430\u043d. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0443, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0432 \u0432\u0438\u0434\u0435:  <\/p>\n<pre><code class=\"javascript\">test.it(2+2==5).comment(&quot;i badly taught algebra at school&quot;); <\/code><\/pre>\n<p>\u041d\u043e, \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0441 \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u044b\u043c\u0438 \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u043c\u0438, \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0441\u0442\u043e\u043b\u0431\u0438\u043a \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u0435\u0435.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c <i>root<\/i> (\u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u0441\u0442) \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/e48\/2ce\/395\/e482ce395dace3f685850d3eaac514d4.png\" alt=\"2 tests\"\/><br \/>  \u0412 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430\u0445 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0441 0 \u0434\u043e 1, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432\/\u0433\u0440\u0443\u043f\u043f.<\/p>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u043c \u0441\u0432\u043e\u0451 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430, \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <i>(\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435 \u0431\u044b\u043b \u043f\u0440\u043e\u0439\u0434\u0435\u043d)<\/i>, \u0442\u0435\u0441\u0442.<br \/>  \u041e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c <font color=\"red\">fail<\/font> \u2014 \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u043c \u0447\u0442\u043e \u0442\u0435\u0441\u0442 \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d, \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c \u00abi badly taught algebra at school\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438.<\/p>\n<p>  \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0432 <b>test.it( value )<\/b> \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u043e \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0438 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0442.\u043f. \u0412\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0447\u0442\u043e \u0431\u044b \u043c\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043b\u0438, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0430 \u044d\u0442\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u0436\u0435 \u0438 \u043f\u043e\u0439\u0434\u0451\u0442 \u0432 \u0442\u0435\u0441\u0442. \u0422\u0430\u043a\u043e\u0432 \u0443\u0436 JavaScript.<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435. \u041f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435:  <\/p>\n<pre><code class=\"javascript\">test.it(Infinity&gt;Infinity-1)     .comment(&quot;philosophically is not it?&quot;); <\/code><\/pre>\n<p>\u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0437\u0430 \u0440\u044e\u043c\u043e\u0447\u043a\u043e\u0439 \u043a\u043e\u0444\u0435, \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0441\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e, \u0447\u0442\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/8a0\/2d8\/4f5\/8a02d84f5ae69159b195af1725a9864c.png\" alt=\"infinity\"\/><\/p>\n<p>  \u041f\u043e\u043a\u0430 \u043d\u0435 \u043c\u044b \u043d\u0435 \u0443\u0448\u043b\u0438 \u0432 \u0434\u0435\u0431\u0440\u0438 \u0446\u0435\u043f\u043e\u0447\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, <i>\u0430 \u043c\u044b \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0439\u0434\u0451\u043c,<\/i> \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0442\u0435\u0441\u0442\u0430 <b>test.it()<\/b>.  <\/p>\n<h3>\u0422\u0435\u0441\u0442 \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e<\/h3>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u043d\u0435\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.  <\/p>\n<pre><code class=\"javascript\">test.it(myIQ,&quot;genious&quot;)     .comment(&quot;is I'm genious?&quot;); test.it(myIQ,(1+10)*12 - 34 + 5*5*5 - 123)     .comment(&quot;check my IQ to be a normal&quot;); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.it-equality\">test.it( value1, value2 )<\/a> \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u044d\u0442\u0438 2 \u0442\u0435\u0441\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/21a\/6c4\/02e\/21a6c402e12090834fdd6bdb93bb3644.png\" alt=\"IQ\"\/><br \/>  \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e, \u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e (\u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e) \u0442\u0435\u0441\u0442\u0430. &quot;<b>arguments has different types<\/b>&quot; \u2014 \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430, \u043f\u043e\u044f\u0441\u043d\u044f\u044e\u0449\u0430\u044f \u043d\u0430\u043c \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0435\u0441\u0442 \u0431\u044b\u043b \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d \u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430.<\/p>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0446\u0435\u043f\u0438.<br \/>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0442\u0435\u0441\u0442\u0430.  <\/p>\n<pre><code class=\"javascript\">if (test.it(Family)         .comment(&quot;Is Family exist? Is it not empty?&quot;)         .result()) {     console.info(&quot;by if: &quot;,&quot;Yep! Here it is!&quot;); } else {     console.warn(&quot;by if: &quot;,&quot;ALARM! there are no Family&quot;); } <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-.result\">.result()<\/a> \u2014 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0430.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043a\u043e\u0434\u0435, \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c <i>Family<\/i> \u043d\u0430 \u043d\u0435-\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u0438 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u0440\u0430\u0437\u044b.<br \/>  \u0412\u044b\u0432\u043e\u0434 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/643\/8f7\/07b\/6438f707bb46aa6fd04d6f771db3439c.png\" alt=\"by if\"\/><\/p>\n<p>  \u041f\u0440\u0430\u0432\u0434\u0430 \u0442\u0430\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0446\u0435\u043f\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430:  <\/p>\n<pre><code class=\"javascript\">test.it(Nothing)     .comment(&quot;Is Nothing exist? Is it not empty?&quot;)     .callback(         function(){console.info(&quot;by callback: &quot;,&quot;Yep! Here it is!&quot;);}        ,function(){console.warn(&quot;by callback: &quot;,&quot;ALARM! there are no Nothing&quot;);}); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-.callback\">.callback( function(){ \/* funcIfpass *\/}[, function(){ \/* funcIffail *\/}[, function(){ \/* funcIferror *\/}]])<\/a> \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0434\u043d\u0443 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u0430 \u0438\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u044b. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0443.<br \/>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/9fb\/ada\/3c2\/9fbada3c26bdd83b522d77b005983b32.png\" alt=\"by callback\"\/><br \/>  \u042d\u0442\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443.<\/p>\n<h3>\u0413\u0440\u0443\u043f\u043f\u044b<\/h3>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443.  <\/p>\n<pre><code class=\"javascript\">test.group(&quot;Empty group&quot;,function(){}); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.group-new\">test.group( name, function(){\u2026 } )<\/a> \u2014 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 <i>\u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439<\/i>, \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0435\u0451 \u0442\u0435\u0441\u0442\u0430\u043c\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u043c\u0438\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0439 \u0432\u0442\u043e\u0440\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c.<\/p>\n<p>  \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e \u0435\u043d \u0431\u044b\u043b\u043e, \u0433\u0440\u0443\u043f\u043f\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u043e\u0439, \u043d\u043e \u0441\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c <font color=\"green\">pass<\/font> \u2014 \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u0432 \u043d\u0435\u0439 \u043d\u0435\u0442\u0443 \u043d\u0438\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/8fb\/cb2\/6c9\/8fbcb26c9a0744c9f7c6e2a7ba687953.png\" alt=\"empty group\"\/><br \/>  <sub>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442, \u044f \u0440\u0430\u0441\u0441\u043a\u0440\u044b\u043b \u0433\u0440\u0443\u043f\u043f\u0443 \u2014 \u044d\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u043f\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0443 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0432\u043d\u0438\u0437, \u0438 \u0434\u0432\u0443\u043c \u0441\u0435\u0440\u044b\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u0430\u043c, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u043c \u0435\u0451 \u043a\u043e\u043d\u0435\u0446. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0443\u0441\u0442\u0430\u044f, \u043e\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u0430\u043a \u0437\u0430\u043a\u0440\u044b\u0442\u0430\u044f.<\/sub><\/p>\n<p>  \u0427\u0442\u043e \u0436. \u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0431\u043e\u043b\u0435\u0435 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0433\u0440\u0443\u043f\u043f\u0443 \u0441 \u0434\u0432\u0443\u043c\u044f \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u043c.  <\/p>\n<pre><code class=\"javascript\">test.group('Family tests',function(){     test.it(Family.name,&quot;Zukerberg&quot;)         .comment(&quot;Are we test Zukerberg's family?&quot;);     test.it(Family.name,&quot;Desiderio&quot;)         .comment(&quot;Or Desiderio's?&quot;); }).comment(&quot;unite!&quot;); <\/code><\/pre>\n<p>\u0412\u043e\u0442 \u0432\u0438\u0434\u0438\u0442\u0435 \u2014 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e!<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/8d1\/2fd\/99c\/8d12fd99c5eaeda747d572de6e907489.png\" alt=\"group with tests\"\/><br \/>  \u0422\u0443\u0442 \u0441\u0442\u043e\u0438\u0442 \u043b\u0438\u0448\u044c \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 <b>unite!<\/b> \u2014 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0433\u0440\u0443\u043f\u043f\u044b.<\/p>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0451\u043c \u0444\u0438\u043d\u0442 \u0443\u0448\u0430\u043c\u0438, \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443. \u0418 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432, \u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u044e\u0442 \u043d\u043e\u0432\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<br \/>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:  <\/p>\n<pre><code class=\"javascript\">test.group(&quot;Family tests&quot;,function(){      test.it(Family.pet)         .comment(&quot;Do we have a pet?&quot;)         .callback(function(){             \/\/ I add test in your test, so you can test while you testing             test.it(Family.pet,{type:&quot;dog&quot;, name:&quot;google&quot;})                 .comment(&quot;Is it right pet?&quot;);         });      test.it(Family.house)         .comment(&quot;Do we have a House?&quot;)         .callback(function(){             \/\/ next test will not be executed             test.it(Family.pet,{type:&quot;Huge&quot;, color:&quot;green&quot;})                 .comment(&quot;Is it right House?&quot;);          });          }); <\/code><\/pre>\n<p>\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043f\u0440\u043e\u0448\u043b\u044b\u0435 2 \u0442\u0435\u0441\u0442\u0430 \u0432 \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e, \u0435\u0449\u0451 4 \u0442\u0435\u0441\u0442\u0430, \u0432\u0441\u0435\u0433\u043e \u0438\u0445 \u0431\u0443\u0434\u0435\u0442 = 5(sic!). \u041c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0435.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/08e\/86c\/86e\/08e86c86edc224638231a48eaffa16d8.png\" alt=\"additional tests\"\/><br \/>  \u0412\u043e\u043d \u0432\u0438\u0434\u0438\u0442\u0435 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435? 3 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0445, 2 \u043f\u0440\u043e\u0432\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u2014 \u0432\u0441\u0435\u0433\u043e 5.<\/p>\n<h3>\u041d\u043e\u0432\u044b\u0435 \u0442\u0435\u0441\u0442\u044b<\/h3>\n<p>  \u041f\u043e\u0440\u0430 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043f\u0430\u0440\u043e\u0447\u043a\u0443 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 <b>\u00abhere comes strange tests\u00bb<\/b> \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0432\u0430 \u0442\u0435\u0441\u0442\u0430:  <\/p>\n<pre><code class=\"javascript\">test.them([Family.pet, Family.members])     .comment(&quot;There must be memebers with pet, to call it a 'Family'&quot;);  test.types([Family.pet.name, Family.name],&quot;string&quot;)     .comment(&quot;Is names are string type&quot;); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.them\">test.them( values )<\/a> \u2014 \u0430\u043d\u0430\u043b\u043e\u0433 <b>test.it( value )<\/b>, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0431\u0435\u0440\u0451\u0442 \u043c\u0430\u0441\u0441\u0438\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043d\u0435-\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c.<br \/>  <a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.types\">test.types( values [, type] )<\/a> \u2014 \u043a\u0430\u043a \u0438 <b>test.them( values )<\/b> \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c. \u041d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0438\u0445 \u043d\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432, \u0430 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <b>type<\/b> \u2014 \u0442\u043e \u0431\u0435\u0440\u0451\u0442 \u044d\u0442\u043e\u0442 \u0442\u0438\u043f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0440\u0430\u0437\u0446\u0430.<br \/>  \u0423 \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u0435\u0441\u0442\u044c \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433, \u043d\u043e \u043e \u043d\u0451\u043c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a \u043e\u043d\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/b18\/8fd\/af1\/b188fdaf16ad496f1e97a29524fc9740.png\" alt=\"them and types\"\/><br \/>  <sub>\u042f \u0440\u0430\u0441\u043a\u0440\u044b\u043b \u0442\u0435\u0441\u0442\u044b \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u043b\u0430\u0441\u044c.<\/sub><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0432\u0430\u043c \u0438 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0446\u0435\u043f\u043e\u0447\u043d\u0430\u044f \u043c\u0430\u0433\u0438\u044f:  <\/p>\n<pre><code class=\"javascript\">var numberOfMembers = test.type(Family.members,&quot;Array&quot;)     .comment(&quot;Is it a several members, nor a single member?&quot;)     .arguments()[0].length; test.it(numberOfMembers&gt;5)     .comment(&quot;Is it big family?&quot;); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-.arguments\">.arguments()<\/a> \u2014 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0435\u0441\u0442 (<b>\u043d\u0435 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443!<\/b>).<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/ec4\/224\/d27\/ec4224d27fd11d66e40fbb2aedcdb46d.png\" alt=\"arguments\"\/><br \/>  \u041f\u043e\u044f\u0441\u043d\u044e \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u0441\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <b>Family.members<\/b> \u043d\u0430 \u043d\u0435 \u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c. \u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u0434\u0432\u0443\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u2014 \u0442\u0435\u0441\u0442 \u043f\u0440\u043e\u0439\u0434\u0435\u043d.<br \/>  <i>arguments()[0]<\/i> == <i>Family.members<\/i>. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <b>numberOfMembers<\/b> \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <b>Family.members<\/b> \u0442\u043e \u0431\u0438\u0448\u044c 2. \u0412\u0442\u043e\u0440\u043e\u0439 \u0442\u0435\u0441\u0442 \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e \u0447\u0442\u043e 2 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 5.<\/p>\n<h3>\u0412\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c<\/h3>\n<p>  \u0412\u044b \u0432\u0435\u0434\u044c \u0435\u0449\u0451 \u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u043c\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 &quot;<b>here comes strange tests<\/b>&quot;?<br \/>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u044e\u0434\u0430 \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u0433\u0440\u0443\u043f\u043f\u0443, \u0438 \u0441\u0440\u0430\u0437\u0443 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 <b>for<\/b> \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432.  <\/p>\n<pre><code class=\"javascript\">test.group(&quot;Members age&quot;,function(){     for (i=0;i&lt;numberOfMembers;i++) {         test.it(Family.members[i].age&gt;25)             .comment(&quot;Is &quot;+Family.members[i].name+&quot; older then 25?&quot;);     } }); <\/code><\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/9f8\/df7\/826\/9f8df78267f1ef0d1d5a6df4891b2887.png\" alt=\"members age\"\/><br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0430 \u043d\u043e\u0432\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 &quot;<b>Members age<\/b>&quot; \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0440\u043e\u0439 &quot;<b>here comes strange tests<\/b>&quot;.<\/p>\n<h3>\u041e\u0448\u0438\u0431\u043a\u0438<\/h3>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u044d\u0442\u0443 \u0436\u0435 \u0433\u0440\u0443\u043f\u043f\u0443 &quot;<b>Members age<\/b>&quot; \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0442\u0435\u0441\u0442:  <\/p>\n<pre><code class=\"javascript\">test.it()     .comment(&quot;yep, here is error&quot;); <\/code><\/pre>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043e\u0448\u0438\u0431\u043a\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a <b>test.it()<\/b> \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442 1 \u0434\u043e 2 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/44e\/cb8\/0e7\/44ecb80e710cb0a6e9da99c99c687b39.png\" alt=\"error\"\/><br \/>  \u0412 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043e\u0448\u0438\u0431\u043a\u0438:  <\/p>\n<ul>\n<li><font color=\"orange\">RangeError<\/font> \u2014 \u0442\u0438\u043f \u043e\u0449\u0438\u0431\u043a\u0438<\/li>\n<li>at least one argument expected \u2014 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u0435\u0451 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f.<\/li>\n<\/ul>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0438\u0434\u0451\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 <b>test.trace()<\/b> \u0447\u0442\u043e \u0431\u044b \u043b\u0435\u0433\u0447\u0435 \u0431\u044b\u043b\u043e \u043d\u0430\u0439\u0442\u0438 \u0435\u0451 \u0432 \u043a\u043e\u0434\u0435. \u0418 \u0441\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043e\u0448\u0438\u0431\u043a\u0438, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 <b>RangeError<\/b> \u2014 \u044d\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u0443-\u0442\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0451\u043c \u0433\u043b\u0443\u0431\u0436\u0435.<\/p>\n<h3>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b<\/h3>\n<p>  \u0412\u0435\u0440\u043d\u0451\u043c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c <b>root<\/b>.<br \/>  \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430 &quot;<b>here comes strange tests<\/b>&quot; \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/ae4\/93f\/6d9\/ae493f6d9aacafde12230958c9425af8.png\" alt=\"big group\"\/><br \/>  \u0412 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 &quot;<b>Members age<\/b>&quot;. \u0412\u043e\u0442 \u0432 \u043d\u0435\u0451 \u0442\u0435\u0441\u0442 \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c.  <\/p>\n<pre><code class=\"javascript\">test.group(&quot;here comes strange tests&quot;).group(&quot;Members age&quot;,function(){     test.it(&quot;bye&quot;)         .comment(&quot;good&quot;); }); <\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/titulus\/testit\/wiki\/API#wiki-test.group-link\">test.group( name )<\/a> \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u0443, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u043b\u043e \u0446\u0435\u043f\u0438, \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0442\u0435\u0441\u0442\u043e\u0432 \u0438\u043b\u0438 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u0443.<br \/>  \u0412\u043e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432\u0438\u0434\u0438\u043c:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/854\/2e5\/1c5\/8542e51c53d97ec7f36d1ef288898b2d.png\" alt=\"good bye\"\/><\/p>\n<p>  \u0418 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a, \u0434\u043b\u044f \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0448\u0435 \u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043f\u043e\u043b\u043d\u044b\u0439 \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u0441\u043e \u0432\u0441\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">console.log( \/\/ look how do test.typeof() work     test.typeof(1)    ,test.typeof(&quot;text&quot;)    ,test.typeof([1,2,3])    ,test.typeof({a:1,b:2})    ,test.typeof()    ,test.typeof(document)    ,test.typeof(document.getElementsByTagName(&quot;body&quot;))    ,test.typeof(window)    ,test.typeof(\/yes it is RegExp\/));  (function firstFunction() { \/\/ look how do test.trace() work     (function secondFunction() {         (function lastFunction() {             console.log(test.trace());         })();     })(); })();  var Family = { \/\/ Here some complex object     name: &quot;Desiderio&quot;,     pet: {         type: &quot;dog&quot;,         name: &quot;google&quot;     },     members: [         {             name: &quot;Titulus&quot;,             age: 23         },         {             name: &quot;Dude&quot;,             age: Infinity         }     ] } var myIQ = 100; \/\/ and value var Nothing; \/\/ and empty value  test.it(&quot;hello world&quot;); \/\/ Let&quot;s add some simple tests test.it(2+2==5).comment(&quot;i badly taught algebra at school&quot;); \/\/ with comment test.it(Infinity&gt;Infinity-1).comment(&quot;philosophically is not it?&quot;); \/\/ with expression \/\/ check equalence test.it(myIQ,&quot;genious&quot;).comment(&quot;is I'm genious?&quot;); test.it(myIQ,(1+10)*12 - 34 + 5*5*5 - 123).comment(&quot;check my IQ to be a normal&quot;); \/\/ try some chain staff if (test.it(Family).comment(&quot;Is Family exist? Is it not empty?&quot;).result()) {     console.info(&quot;by if: &quot;,&quot;Yep! Here it is!&quot;); } else {     console.warn(&quot;by if: &quot;,&quot;ALARM! there are no Family&quot;); } \/\/ do it again in better way test.it(Nothing).comment(&quot;Is Nothing exist? Is it not empty?&quot;).callback(     function(){console.info(&quot;by callback: &quot;,&quot;Yep! Here it is!&quot;);}    ,function(){console.warn(&quot;by callback: &quot;,&quot;ALARM! there are no Nothing&quot;);});  test.group(&quot;Empty group&quot;,function(){}); \/\/ try to make a group test.group('Family tests',function(){ \/\/ let's unite it!     test.it(Family.name,&quot;Zukerberg&quot;).comment(&quot;Are we test Zukerberg's family?&quot;);     test.it(Family.name,&quot;Desiderio&quot;).comment(&quot;Or Desiderio's?&quot;); }).comment(&quot;unite!&quot;); test.group(&quot;Family tests&quot;,function(){ \/\/ and add some test after     test.it(Family.pet).comment(&quot;Do we have a pet?&quot;)         .callback(function(){             \/\/ I add test in your test, so you can test while you testing             test.it(Family.pet,{type:&quot;dog&quot;, name:&quot;google&quot;}).comment(&quot;Is it right pet?&quot;);         });     test.it(Family.house).comment(&quot;Do we have a House?&quot;)         .callback(function(){             \/\/ next test will not be executed             test.it(Family.pet,{type:&quot;Huge&quot;, color:&quot;green&quot;}).comment(&quot;Is it right House?&quot;);          }); }); test.group(&quot;here comes strange tests&quot;,function(){     \/\/ test existance of most important Family properties     test.them([Family.pet, Family.members])         .comment(&quot;There must be memebers with pet, to call it a 'Family'&quot;);     \/\/ test types of names     test.types([Family.pet.name, Family.name],&quot;string&quot;)         .comment(&quot;Is names are string type&quot;);     \/\/ here some magic     var numberOfMembers = test.type(Family.members,&quot;Array&quot;)         .comment(&quot;Is it a several members, nor a single member?&quot;)         .arguments()[0].length;     test.it(numberOfMembers&gt;5).comment(&quot;Is it big family?&quot;);     \/\/ So if we know how many members there, lets check their age     test.group(&quot;Members age&quot;,function(){         for (i=0;i&lt;numberOfMembers;i++) {             test.it(Family.members[i].age&gt;25)                 .comment(&quot;Is &quot;+Family.members[i].name+&quot; older then 25?&quot;);         }         test.it().comment(&quot;yep, here is error&quot;); \/\/ add some error to see the trace     }); }); \/\/ add final test deep in group test.group(&quot;here comes strange tests&quot;).group(&quot;Members age&quot;,function(){     test.it(&quot;bye&quot;).comment(&quot;good&quot;); });  test.done();<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/862\/867\/ea4\/862867ea409e7ff3bb8a808c46a34b08.png\" alt=\"full\"\/><\/div>\n<\/div>\n<h3>root<\/h3>\n<p>  \u0410\u0445 \u0434\u0430. <b>test.root<\/b> \u0432\u0441\u0451 \u0435\u0449\u0451 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u0441\u0432\u043e\u0451\u043c \u043c\u0435\u0441\u0442\u0435. \u0415\u0433\u043e \u0432\u0441\u0451 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041e\u043d \u0441\u043b\u0435\u0433\u043a\u0430 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b\u0441\u044f (\u0443 \u0433\u0440\u0443\u043f\u043f \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u0442\u0435\u0441\u0442\u044b).<br \/>  \u041f\u0443\u0441\u0442\u043e\u0439 <b>root<\/b> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"javascript\">{     &quot;type&quot;: &quot;group&quot;,     &quot;name&quot;: &quot;root&quot;,     &quot;time&quot;: 0,     &quot;result&quot;: {         &quot;pass&quot;: 0,         &quot;fail&quot;: 0,         &quot;error&quot;: 0,         &quot;total&quot;: 0     },     &quot;stack&quot;: [] } <\/code><\/pre>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>  \u041e\u0447\u0435\u043d\u044c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u0442\u044c:  <\/p>\n<ul>\n<li><a href=\"http:\/\/habrahabr.ru\/users\/camelos\/\" class=\"user_link\">camelos<\/a> \u0438 <a href=\"http:\/\/habrahabr.ru\/users\/zorro1211\/\" class=\"user_link\">zorro1211<\/a> \u0437\u0430 \u0438\u0434\u0435\u0438 \u0446\u0435\u043f\u043e\u0447\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432<\/li>\n<li><a href=\"http:\/\/habrahabr.ru\/users\/camelos\/\" class=\"user_link\">camelos<\/a> \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0437\u0430 \u0438\u0434\u0435\u044e <b>.callback<\/b><\/li>\n<li><a href=\"http:\/\/habrahabr.ru\/users\/anonym\/\" class=\"user_link\">Anonym<\/a> \u0437\u0430 \u0438\u0434\u0435\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0433\u0440\u0443\u043f\u043f\u0435 \u0438\u0437\u0432\u043d\u0435. \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.<\/li>\n<\/ul>\n<p>  \u0412\u0441\u0451 \u0435\u0449\u0451 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043c\u0438\u043d\u0443\u0441\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u0435. \u041d\u043e \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043c\u044b\u0441\u043b\u0438 \u043f\u043e \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.<\/p>\n<p>  <a href=\"http:\/\/titulus.github.io\/testit\/\">\u0421\u0430\u0439\u0442<\/a> \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0435\u0441\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043a\u043e\u0434 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438, <a href=\"https:\/\/github.com\/titulus\/testit\">GitHub<\/a>, <a href=\"https:\/\/github.com\/titulus\/testit\/wiki\">Wiki<\/a>    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/189216\/\"> http:\/\/habrahabr.ru\/post\/189216\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c \u0445\u0430\u0431\u0440.<br \/>  \u041f\u043e\u0441\u043b\u0435 \u043c\u043e\u0435\u0439 <a href=\"http:\/\/habrahabr.ru\/post\/188268\/\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a> \u043e <b>test.it<\/b> \u043f\u0440\u043e\u0448\u043b\u0430 <s>\u0432\u0435\u0447\u043d\u043e\u0441\u0442\u044c<\/s> \u043d\u0435\u0434\u0435\u043b\u044f. \u0418 \u043a\u0430\u043a \u044f \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0440\u043e\u043a \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0430 \u043c\u0435\u0441\u044f\u0446, \u043d\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<br \/>  \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/031\/d27\/795\/031d27795e16fab6d508d21878f00c2f.png\"\/><br \/>  \u0421 \u0442\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <i>(\u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0445\u0430\u0431\u0440\u0430\u0432\u0447\u0430\u043d\u0430\u043c)<\/i> \u043e\u0431\u0440\u043e\u0441\u043b\u0430 \u043d\u043e\u0432\u044b\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c.<br \/>  \u0410 \u0432\u0432\u0438\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u043e\u0442\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0435\u0449\u0451 \u043d\u0430 3 \u043d\u0435\u0434\u0435\u043b\u0438 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442\u0443 \u043f\u0440\u0430\u0432\u0430.<\/p>\n<p>  \u041a\u0442\u043e \u043d\u0435 \u043b\u044e\u0431\u0438\u0442 \u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432 \u2014 <a href=\"http:\/\/titulus.github.io\/testit\/\">\u0421\u0430\u0439\u0442<\/a> \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043a\u043e\u0434 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438, <a href=\"https:\/\/github.com\/titulus\/testit\">GitHub<\/a>, <a href=\"https:\/\/github.com\/titulus\/testit\/wiki\">Wiki<\/a>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-189216","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/189216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=189216"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/189216\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=189216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=189216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=189216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}