Познакомьтесь с объектно-ориентированным онанизмом:

chai.should();

foo.should.be.a('string');
foo.should.equal('bar');
foo.should.have.lengthOf(3);
tea.should.have.property('flavors').with.lengthOf(3);

Круто же? Просто.пишешь.слова.через.точку.и.все.понятно(). Недолго новый язык придумать:

Пусть.Сумма.Равно.Единичка().Прибавить.Двойка();
Сохранить.В.Базу.Пользователь().Созданный.Из.JSON.Строки.Введенной.Из.Консоли().

Обычного ассерта недостаточно. В библиотеке есть Should, Expect и Assert. Почему нет Мамой.Клянусь, Бля.Буду или Стопудов? Чтобы уж точно быть уверенным, что тест работает.

Конечно, этот бред зародился Джаваскрипте. Где же еще до такого додумаются? Но заразу начинают тащить в Руби и Питон. Языки группы риска.

Что возвращает метод should? А что be, a? А если напишу .be.be.be.a.a.a("wtf")?

Ниче, что один хер предложение не будет в точности похожим на человеческий язык? Придется каждый раз бегать в документацию. Насколько упоротым нужно быть, чтобы поддерживать артикли?

У нас в проекте на Кложе 80 тестов и 800 ассертов, все работают на одном макросе is. А этим долбоебам нужен квази-язык чтобы.писать.в.объектном.стиле.потому.что.круто().

Шизофрения, как и было сказано.