<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Assert Node.js v0.10.24 Manual &amp; Documentation</title>
  <link rel="stylesheet" href="assets/style.css">
  <link rel="stylesheet" href="assets/sh.css">
  <link rel="canonical" href="http://nodejs.org/api/assert.html">
</head>
<body class="alt apidoc" id="api-section-assert">
    <div id="intro" class="interior">
        <a href="/" title="Go back to the home page">
            <img id="logo" src="http://nodejs.org/images/logo-light.png" alt="node.js">
        </a>
    </div>
    <div id="content" class="clearfix">
        <div id="column2" class="interior">
            <ul>
                <li><a href="/" class="home">Home</a></li>
                <li><a href="/download/" class="download">Download</a></li>
                <li><a href="/about/" class="about">About</a></li>
                <li><a href="http://npmjs.org/" class="npm">npm Registry</a></li>
                <li><a href="http://nodejs.org/api/" class="docs current">Docs</a></li>
                <li><a href="http://blog.nodejs.org" class="blog">Blog</a></li>
                <li><a href="/community/" class="community">Community</a></li>
                <li><a href="/logos/" class="logos">Logos</a></li>
                <li><a href="http://jobs.nodejs.org/" class="jobs">Jobs</a></li>
            </ul>
            <p class="twitter"><a href="http://twitter.com/nodejs">@nodejs</a></p>
        </div>

        <div id="column1" class="interior">
          <header>
            <h1>Node.js v0.10.24 Manual &amp; Documentation</h1>
            <div id="gtoc">
              <p>
                <a href="index.html" name="toc">Index</a> |
                <a href="all.html">View on single page</a> |
                <a href="assert.json">View as JSON</a>
              </p>
            </div>
            <hr>
          </header>

          <div id="toc">
            <h2>Table of Contents</h2>
            <ul>
<li><a href="#assert_assert">Assert</a><ul>
<li><a href="#assert_assert_fail_actual_expected_message_operator">assert.fail(actual, expected, message, operator)</a></li>
<li><a href="#assert_assert_value_message_assert_ok_value_message">assert(value, message), assert.ok(value, [message])</a></li>
<li><a href="#assert_assert_equal_actual_expected_message">assert.equal(actual, expected, [message])</a></li>
<li><a href="#assert_assert_notequal_actual_expected_message">assert.notEqual(actual, expected, [message])</a></li>
<li><a href="#assert_assert_deepequal_actual_expected_message">assert.deepEqual(actual, expected, [message])</a></li>
<li><a href="#assert_assert_notdeepequal_actual_expected_message">assert.notDeepEqual(actual, expected, [message])</a></li>
<li><a href="#assert_assert_strictequal_actual_expected_message">assert.strictEqual(actual, expected, [message])</a></li>
<li><a href="#assert_assert_notstrictequal_actual_expected_message">assert.notStrictEqual(actual, expected, [message])</a></li>
<li><a href="#assert_assert_throws_block_error_message">assert.throws(block, [error], [message])</a></li>
<li><a href="#assert_assert_doesnotthrow_block_message">assert.doesNotThrow(block, [message])</a></li>
<li><a href="#assert_assert_iferror_value">assert.ifError(value)</a></li>
</ul>
</li>
</ul>

          </div>

          <div id="apicontent">
            <h1>Assert<span><a class="mark" href="#assert_assert" id="assert_assert">#</a></span></h1>
<pre class="api_stability_5">Stability: 5 - Locked</pre><p>This module is used for writing unit tests for your applications, you can
access it with <code>require(&#39;assert&#39;)</code>.

</p>
<h2>assert.fail(actual, expected, message, operator)<span><a class="mark" href="#assert_assert_fail_actual_expected_message_operator" id="assert_assert_fail_actual_expected_message_operator">#</a></span></h2>
<p>Throws an exception that displays the values for <code>actual</code> and <code>expected</code> separated by the provided operator.

</p>
<h2>assert(value, message), assert.ok(value, [message])<span><a class="mark" href="#assert_assert_value_message_assert_ok_value_message" id="assert_assert_value_message_assert_ok_value_message">#</a></span></h2>
<p>Tests if value is truthy, it is equivalent to <code>assert.equal(true, !!value, message);</code>

</p>
<h2>assert.equal(actual, expected, [message])<span><a class="mark" href="#assert_assert_equal_actual_expected_message" id="assert_assert_equal_actual_expected_message">#</a></span></h2>
<p>Tests shallow, coercive equality with the equal comparison operator ( <code>==</code> ).

</p>
<h2>assert.notEqual(actual, expected, [message])<span><a class="mark" href="#assert_assert_notequal_actual_expected_message" id="assert_assert_notequal_actual_expected_message">#</a></span></h2>
<p>Tests shallow, coercive non-equality with the not equal comparison operator ( <code>!=</code> ).

</p>
<h2>assert.deepEqual(actual, expected, [message])<span><a class="mark" href="#assert_assert_deepequal_actual_expected_message" id="assert_assert_deepequal_actual_expected_message">#</a></span></h2>
<p>Tests for deep equality.

</p>
<h2>assert.notDeepEqual(actual, expected, [message])<span><a class="mark" href="#assert_assert_notdeepequal_actual_expected_message" id="assert_assert_notdeepequal_actual_expected_message">#</a></span></h2>
<p>Tests for any deep inequality.

</p>
<h2>assert.strictEqual(actual, expected, [message])<span><a class="mark" href="#assert_assert_strictequal_actual_expected_message" id="assert_assert_strictequal_actual_expected_message">#</a></span></h2>
<p>Tests strict equality, as determined by the strict equality operator ( <code>===</code> )

</p>
<h2>assert.notStrictEqual(actual, expected, [message])<span><a class="mark" href="#assert_assert_notstrictequal_actual_expected_message" id="assert_assert_notstrictequal_actual_expected_message">#</a></span></h2>
<p>Tests strict non-equality, as determined by the strict not equal operator ( <code>!==</code> )

</p>
<h2>assert.throws(block, [error], [message])<span><a class="mark" href="#assert_assert_throws_block_error_message" id="assert_assert_throws_block_error_message">#</a></span></h2>
<p>Expects <code>block</code> to throw an error. <code>error</code> can be constructor, regexp or 
validation function.

</p>
<p>Validate instanceof using constructor:

</p>
<pre><code>assert.throws(
  function() {
    throw new Error(&quot;Wrong value&quot;);
  },
  Error
);</code></pre>
<p>Validate error message using RegExp:

</p>
<pre><code>assert.throws(
  function() {
    throw new Error(&quot;Wrong value&quot;);
  },
  /value/
);</code></pre>
<p>Custom error validation:

</p>
<pre><code>assert.throws(
  function() {
    throw new Error(&quot;Wrong value&quot;);
  },
  function(err) {
    if ( (err instanceof Error) &amp;&amp; /value/.test(err) ) {
      return true;
    }
  },
  &quot;unexpected error&quot;
);</code></pre>
<h2>assert.doesNotThrow(block, [message])<span><a class="mark" href="#assert_assert_doesnotthrow_block_message" id="assert_assert_doesnotthrow_block_message">#</a></span></h2>
<p>Expects <code>block</code> not to throw an error, see assert.throws for details.

</p>
<h2>assert.ifError(value)<span><a class="mark" href="#assert_assert_iferror_value" id="assert_assert_iferror_value">#</a></span></h2>
<p>Tests if value is not a false value, throws if it is a true value. Useful when
testing the first argument, <code>error</code> in callbacks.
</p>

          </div>
        </div>
    </div>
    <div id="footer">
        <a href="http://joyent.com" class="joyent-logo">Joyent</a>
        <ul class="clearfix">
            <li><a href="/">Node.js</a></li>
            <li><a href="/download/">Download</a></li>
            <li><a href="/about/">About</a></li>
            <li><a href="http://npmjs.org/">npm Registry</a></li>
            <li><a href="http://nodejs.org/api/">Docs</a></li>
            <li><a href="http://blog.nodejs.org">Blog</a></li>
            <li><a href="/community/">Community</a></li>
            <li><a href="/logos/">Logos</a></li>
            <li><a href="http://jobs.nodejs.org/">Jobs</a></li>
            <li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li>
        </ul>

        <p>Copyright <a href="http://joyent.com/">Joyent, Inc</a>, Node.js is a <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View <a href="https://raw.github.com/joyent/node/v0.10.24/LICENSE">license</a>.</p>
    </div>

  <script src="../sh_main.js"></script>
  <script src="../sh_javascript.min.js"></script>
  <script>highlight(undefined, undefined, 'pre');</script>
  <script>
    window._gaq = [['_setAccount', 'UA-10874194-2'], ['_trackPageview']];
    (function(d, t) {
      var g = d.createElement(t),
          s = d.getElementsByTagName(t)[0];
      g.src = '//www.google-analytics.com/ga.js';
      s.parentNode.insertBefore(g, s);
    }(document, 'script'));
  </script>
</body>
</html>

