Согласен. Недосмотрел, что $mail это mysql_fetch_array. Посмотрите, наверняка в таблице 'mails' столбец 'html' содержит неинтерпретированные значения, как и говорил с своем ответе @VeMax.
Наверное, я поспешил с заявлением, что в Mocha нет BDD - я его нашел, с вашей подачи. Забавно, что для этого надо использовать Zombie, которое под Windows 8 x64 не устанавливается.
По поводу BDD: конечно, он тесно связан с TDD. Это своего рода проверка того, что приложение работает так, как задумано. В моем понимании, BDD = функциональный тест.
Спасибо за ответ! Я присматривался к Mocha, но то ли я чего-то не понимаю, либо там не различают BDD и TDD и иногда второе называют первым, если вдруг тесты выполняются в браузере.
Например, фрагменты тестов с сайта Mocha:
__BDD__
describe('Array', function(){
describe('#indexOf()', function(){
it('should return -1 when not present', function(){
[1,2,3].indexOf(4).should.equal(-1);
});
});
});
__TDD__
suite('Array', function(){
suite('#indexOf()', function(){
test('should return -1 when not present', function(){
assert.equal(-1, [1,2,3].indexOf(4));
});
});
});
Какова принципиальная разница между этими тестами? Почему один из них BDD, а второй TDD? Как по мне, они оба TDD.
В моем понимании, для BDD браузер используется для имитации действий пользователя: т.е. зайти на сайт, заполнить форму, нажать ОК и убедиться, что на выходе требуемый результат. В Mocha я такой возможности не заметил. Если она ускользнула от меня, дайте мне знать, пожалуйста.
Именно поэтому, говоря "класс" в Javascript, я беру его в кавычки. Про изменчивость прототипа согласен. Но мне и не надо графическое представлениие "классов" на протяжении всего "времени жизни программы", а только в один конкретный момент времени.