55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
1

Как организовать тестирование js-кода?

19.03.2016, 12:09. Показов 313. Ответов 6
Метки нет (Все метки)

как можно организовать тестирование js кода ?

если тем же js брать значение элемента и вставлять в фун-ю eval, то при любых ошибках в коде, беда)
eval($("#test_code").val());
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2016, 12:09
Ответы с готовыми решениями:

Тестирование в Word: как организовать статистику
Народ помогите с тестом в ворде пожалуйста. В тесте 8 OptionButton (один пустой - пятый), сколько...

Как толком организовать тестирование в QtCreator (subdirs, GoogleTest)
Доброго дня! Хотелось бы уяснить, как лучше всего организовать тестирование с помощью GoogleTest...

Программа-тестирование: организовать выбор вопроса из listbox
Доброго времени суток. Разрабатываю программу, которая включает в себя вывод заданий(тестов),...

Как правильно организовать повторное использование кода?
Имеется вот такая иерархия классов: Эти классы используются в одном проекте. Хотелось бы...

6
666 / 637 / 335
Регистрация: 26.04.2014
Сообщений: 2,114
19.03.2016, 13:17 2
53ifbb,
Javascript
1
2
3
4
5
6
try {
    // здесь код
    undefinedFunction();
} catch(err) {
    alert('Error: '+err.name+' : '+err.message);
}
Подробнее почитать: Перехват ошибок, "try..catch".
0
Hello Kitty
688 / 561 / 401
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
19.03.2016, 13:29 3
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function SandBox( code , result ) {
    var sc = false;
    var i = 0;
    setTimeout(function() {
        i++;
        eval(code);
        sc = true;
    } , 0);
    var intv = setInterval(function() {
        if ( i !== 0 ) {
            setTimeout(function() {
                result(sc);
            } , 100)
            clearInterval(intv)
        }
    },10);
}
 
$('#btn').click(function(){
    SandBox( $('#test_code').val() , function(isSc) {
        if ( isSc )
            alert('True')
        else
            alert('False')
    })
})
HTML5
1
2
<textarea id="test_code" ></textarea><br>
<button id="btn">...</button>
https://jsfiddle.net/8u3j18hj/9/

Добавлено через 3 минуты
Цитата Сообщение от alexsamos33 Посмотреть сообщение
Подробнее почитать: Перехват ошибок, "try..catch".
хм.
Javascript
1
2
3
4
5
6
7
8
$('#btn').click(function(){
    try {
            eval( $('#test_code').val() )
    } catch(err) {
            alert('Error: '+err.name+' : '+err.message);
    }
    alert('true')
})
HTML5
1
2
<textarea id="test_code" ></textarea><br>
<button id="btn">...</button>
https://jsfiddle.net/zL7uvrn2/
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
20.03.2016, 09:53  [ТС] 4
alexsamos33, WhiteMind, ребятульки, мне самое главное, что бы скрипт не упал при любых раскладах. Эти конструкции не помогут, если синтаксис нарушен
0
666 / 637 / 335
Регистрация: 26.04.2014
Сообщений: 2,114
20.03.2016, 11:00 5
53ifbb, Тогда так: У меня не падает...
https://jsfiddle.net/93m39h49/
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function execNewScript(sCode) {
    var h = document.getElementsByTagName("head")[0],
    sc = document.createElement("script");
    sc.type = "text/javascript";
    sc.text = sCode;
    h.appendChild(sc);
}
 
/*
execNewScript('alert("OK1");'); // сработает
execNewScript('}alert("Error");{'); // не сработает, пропустит и продолжит выполнение основного скрипта
execNewScript('alert("OK2");'); // сработает
*/
 
$('#btn').click(function(){
    execNewScript( $('#test_code').val() );
});
1
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
13.05.2016, 10:46  [ТС] 6
alexsamos33, такой вариант годится.
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
24.05.2016, 17:19  [ТС] 7
alexsamos33, мне нужно все что бы было на jquery, обязательно.
Помогите переписать еще ваш вариант) что то я делаю не так
Javascript
1
2
3
4
5
6
7
$("#perform_"+mode).click(function(){
            var h = $("head").eq(0);
            $("<script/>", {
                type: "text/javascript",
                text: $("#test_code").val()
            }).appendTo(h);
        });
Добавлено через 8 часов 24 минуты
alexsamos33, вот получился рабочий вариант, но нужно после удалять этот элемент и у меня после выполнения происходит опять редирект на главную, как и при том же моменте , когда сыпался скрипт!

Javascript
1
2
3
4
5
6
var sc = $("<script/>").appendTo("head");
        sc.attr("type", "text/javascript");
        sc.text( $("#test_code").val() );
        $("head").eq(0).appendChild(sc);
        
        sc.remove();
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2016, 17:19

Как организовать большую часть кода в main?
В main у меня создается 5 кнопок игрового меню и там же в main вешается слушатель и располагается...

Как правильно организовать взаимодействие двух частей кода?
Всем ку! Есть задумка разделить код в билдере на 2 части. В первой части будут только обработчики...

Как организовать побитовую запись двоичного кода (Хаффман) ?
Пытаюсь реализовать алгоритм Хаффмана, который будет сжимать текстовый файл. Уже построено дерево...

Запись из файла в Базу данных (как организовать структура кода)
Из файла построчно считывается текст. Далее текст разбивается на отдельные значения и заносится в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.