Миграция от SUnit до Phexample

Добавляет критическую точку к отказу на сайт

третье по высоте , идея о uservoice для Stackoverflow состоит в том, чтобы позволить изменять поставщика OpenID. И в комментариях существует предложение, чтобы позволить связывать больше, чем на OpenID. На сайтах, где несколько OpenIDs могут быть связаны с учетной записью, если Ваш обычный поставщик OpenID снижается, можно все еще войти в систему с другим поставщиком (предполагающий, что Вы уже связали ее с сайтом).

кроме того, это - только критическая точка отказа для пользователей поставщика OpenID, который не работает. Все другие пользователи на других поставщиках OpenID могут продолжить регистрировать его. Со временем Вы ожидали бы, что пользователи мигрируют на самых надежных поставщиков.

Берет пользователя к другому контенту сайтов и каждый раз, когда они входят в систему на Ваш сайт

, Если Вы настроили своего поставщика OpenID, чтобы всегда доверять сайту (или потребитель OpenID в номенклатуре), и Вы уже зарегистрированы в своего поставщика OpenID тогда, они перенаправят Вас назад на сайт без Вас даже обращение на Ваш сайт поставщиков OpenID.

Добавляет неиспытательное количество времени к регистрации

В настоящее время, который может быть верным, но поскольку andyuk сказал, "Это становится меньшим количеством проблемы больше сайтов та поддержка OpenID". Я ожидал бы, что через несколько лет большинство пользователей будет уже иметь OpenID и знать, каково это.

5
задан akuhn 20 November 2009 в 12:32
поделиться

1 ответ

Что касается сопоставителей математических ожиданий, существует ряд правил перезаписи на стороне класса PhexMatcher . Этот скринкаст объясняет, как использовать механизм перезаписи RB: Критики кода в OB (OB Screencast 3) .

Сначала используйте эти правила

RBParseTreeRewriter new
    replace: 'self assert: [ `@expression ]' with: 'self assert: `@expression';
    replace: 'self deny: `@expression' with: 'self assert: `@expression not';
    yourself.

Затем используйте эти правила

RBParseTreeRewriter new
    replace: 'self assert: `@value = `@expected' with: '`@value should = `@expected';
    replace: 'self assert: `@value ~= `@expected' with: '`@value should not = `@expected';
    replace: 'self assert: `@value > `@expected' with: '`@value should > `@expected';
    replace: 'self assert: `@value < `@expected' with: '`@value should < `@expected';
    replace: 'self assert: `@value >= `@expected' with: '`@value should >= `@expected';
    replace: 'self assert: `@value <= `@expected' with: '`@value should <= `@expected';
    replace: 'self assert: (`@value isKindOf: `@type)' with: '`@value should beKindOf: `@type';
    replace: 'self assert: `@expression isNil' with: '`@expression should be isNil';
    replace: 'self assert: `@expression notNil' with: '`@expression should be notNil';
    replace: 'self assert: `@expression `test not' with: '`@expression should not be `test'
        when: [:node | node arguments first receiver selector matchesRegex: '(is|has|not).+|atEnd' ];
    replace: 'self assert: `@expression `test' with: '`@expression should be `test'
        when: [:node | node arguments first selector matchesRegex: '(is|has|not).+|atEnd' ];
    replace: 'self assert: (`@collection includes: `@element) not' with: '`@collection should not be includes: `@element';
    replace: 'self assert: (`@collection includes: `@element)' with: '`@collection should be includes: `@element';
    yourself.

Относительно введения зависимостей между тестами , вам придется вручную переписать свои тесты. Для JExample есть JUnit2JExample , но, увы, для Smalltalk нет автоматической миграции (пока).


PS: если вы используете последний образ Pharo, вы должны использовать OB и откатить пакет OB-Refactory, чтобы правила перезаписи с ограниченной областью действия работали. Просто выполните

SystemBrowser default: OBSystemBrowserAdaptor.
Gofer new
    wiresong: 'ob';
    addPackage: 'OB-Refactory';
    revert
5
ответ дан 14 December 2019 в 19:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: