Контекстно-независимая среда тестирования JavaScript - PullRequest
11 голосов
/ 28 января 2009

Я ищу среду тестирования JavaScript, которую можно легко использовать в любом контексте, будь то браузер, консоль, XUL и т. Д.

Существует ли такая структура или способ легко модифицировать существующую структуру, чтобы ее контекст не зависел?

Редактировать: инфраструктура тестирования должна не быть привязана к любой другой платформе, такой как jQuery или Prototype.js, и не должна зависеть от наличия DOM (или объекта документа). Я ищу что-нибудь для проверки чистого JavaScript .

Ответы [ 7 ]

4 голосов
/ 31 января 2009

ОК, вот что я только что приготовил, основываясь на некоторых предыдущих работах. Я надеюсь, что это будет соответствовать вашим потребностям.

jsUnity

Легкая универсальная среда тестирования JavaScript

jsUnity - это легкая универсальная среда тестирования JavaScript, которая контекстно-агностик. Это не зависит от любые возможности браузера и, следовательно, может быть запущен внутри HTML, ASP, WSH или любой другой контекст, который использует JavaScript / JScript / ECMAScript.

Пример использования внутри HTML

<code><pre>
<script type="text/javascript" src="../jsunity.js"></script>
<script type="text/javascript">
function sampleTestSuite() {
    function setUp() {
        jsUnity.log("set up");
    }

    function tearDown() {
        jsUnity.log("tear down");
    }

    function testLessThan() {
        assertTrue(1 < 2);
    }

    function testPi() {
        assertEquals(Math.PI, 22 / 7);
    }
}

// optionally wire the log function to write to the context
jsUnity.log = function (s) { document.write(s + "</br>"); };
var results = jsUnity.run(sampleTestSuite);
// if result is not false,
// access results.total, results.passed, results.failed
</script>

Вывод вышеуказанного:

2 tests found
set up
tear down
[PASSED] testLessThan
set up
tear down
[FAILED] testPi: Actual value does not match what's expected: [expected] 3.141592653589793, [actual] 3.142857142857143
1 tests passed
1 tests failed
2 голосов
/ 02 сентября 2010

Жасмин выглядит интересно.

По словам разработчиков, это было написано потому, что ни одна из других тестовых сред JS не отвечала всем их требованиям в одном предложении и не требовала таких вещей, как DOM, jQuery или объект window, что является одной из явных точек проектирования.

Я подумываю использовать его с env.js и Rhino / SpiderMonkey / V8 / etc. писать клиентские тесты для моих веб-приложений, которые можно легко запускать во всех тех же ситуациях, что и модульные тесты Python. (setup.py test, BuildBot и т. Д.)

1 голос
/ 30 января 2009

Вы можете проверить Тест YUI . Должно работать без DOM.

0 голосов
/ 19 октября 2010

Я только что заставил Хадсона CI запустить JasmineBDD , по крайней мере, для модульного тестирования на чистом javascript.

0 голосов
/ 22 сентября 2009

Там также JSpec

JSpec - чрезвычайно маленькая, но очень мощная среда тестирования. Используя свою собственную пользовательскую грамматику и препроцессор, JSpec может работать так, как не может ни одна другая среда тестирования JavaScript. Это включает в себя множество полезных сокращенных литералов, очень интуитивно понятный / читаемый синтаксис, а также не загрязняющие прототипы основных объектов.

JSpec также можно запускать различными способами, например, через терминал с поддержкой Rhino, через браузеры, использующие средства форматирования DOM или Console, или, наконец, с помощью среды тестирования Ruby JavaScript, которая запускает браузеры в фоновом режиме и сообщает в терминал.

0 голосов
/ 30 января 2009

Может ли JsUnit помочь? Он предназначен для работы в браузере, но выглядит довольно абстрактно.

0 голосов
/ 28 января 2009

Они запускаются везде, где включен JavaScript.

скриптовое юнит-тестирование

QUnit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...