Skip to content

Status of underscore testcases

Overview

Underscore testcases exercise some core language features but also contain some browser specific stuff. There are also some asynchronous tests which cannot be executed directly. Underscore uses a unit test framework which needs to be emulated, see underscore-test-shim.js.

This document summarizes the currently failing testcases and why they fail.

Summary of failure reasons

  • Because asyncTest() is unimplemented, all async tests are skipped now (such tests are used in the Functions module).
  • Several template testcases fail (see below), not diagnosed yet. The same errors occur with Rhino, so the culprit is probably the shim or the test cases themselves.
  • Interpolate bug, see below.

Individual errors

_.template provides the generated function source, when a SyntaxError occurs

In module utility:

*** _.template provides the generated function source, when a SyntaxError occurs
FAILURE undefined

_.template handles u2028 & u2029

In module utility:

*** _.template handles \u2028 & \u2029
FAILURE undefined

result calls functions and returns primitives

In module utility:

*** result calls functions and returns primitives
*** _.templateSettings.variable
FAILURE undefined
FAILURE undefined

#547 - _.templateSettings is unchanged by custom settings.

In module utility:

*** #547 - _.templateSettings is unchanged by custom settings.
FAILURE undefined
FAILURE undefined

#556 - undefined template variables.

In module utility:

*** #556 - undefined template variables.
FAILURE undefined
FAILURE undefined
FAILURE undefined
FAILURE undefined
FAILURE undefined
FAILURE undefined
FAILURE undefined
FAILURE undefined

interpolate evaluates code only once.

In module utility:

*** interpolate evaluates code only once.
TEST CASE FAILED: assert count mismatch (0 vs 2)