Фундаментальное различие между тремя перечисленными вами стратегиями заключается в том, находится ли тестовый код в том же пакете, что и тестируемый код. Решение использовать package myfunc
или package myfunc_test
в тестовом файле зависит от того, хотите ли вы выполнить white-box или тестирование черного ящика .
Нет ничего плохого в использовании обоих методов в проекте. Например, вы могли бы иметь myfunc_whitebox_test.go
и myfunx_blackbox_test.go
.
package myfunc_test
, который гарантирует, что вы используете только экспортированные идентификаторы . package myfunc
, чтобы у вас был доступ к неэкспортированным идентификаторам. myfunc_test.go
использует package myfunc
. В этом случае тестовый код в myfunc_test.go
будет в том же пакете, что и код, протестированный в myfunc.go
, который является myfunc
в этом примере. myfunc_test.go
использует package myfunc_test
- в этом случае тестовый код в myfunc_test.go
"будет скомпилирован как отдельный пакет, а затем связан и запущен с основным тестовым двоичным кодом". [Источник: строки 58-59 в исходном коде test.go ] myfunc_test.go
использует package myfunc_test
, но импортирует myfunc
с использованием точечной нотации - Это вариант стратегии 2, но для импорта myfunc
используется точечная нотация. Из документов jQuery:
http://docs.jquery.com/Effects/stop
Остановить текущая анимация совпадающих элементов. ...
Когда при вызове
.stop()
вызывается элемент, текущая анимация (если есть) немедленно останавливается. Если, например, элемент скрывается с.slideUp()
, когда вызывается.stop()
, элемент теперь будет отображаться, но будет составлять часть его предыдущей высоты. Функции обратного вызова не вызываются.Если для одного и того же элемента вызывается несколько методов анимации, более поздние анимации помещаются в очередь эффектов для элемента. Эти анимации не начнутся до тех пор, пока не завершится первая. Когда вызывается
.stop()
, следующая анимация в очереди начинается немедленно. Если параметруclearQueue
присвоено значениеtrue
, остальные анимации в очереди удаляются и никогда не запускаются.Если аргументу
blockquote>jumpToEnd
предоставляется значение true, текущая анимация останавливается, но элемент сразу получает целевые значения для каждого свойства CSS. В нашем примере выше.slideUp()
элемент будет немедленно скрыт. Затем функция обратного вызова немедленно вызывается, если она предоставлена ...
Я перечислил это как комментарий для принятого ответа, но я подумал, что было бы неплохо опубликовать его как автономный ответ, поскольку он помогает некоторым людям, имеющим проблемы с .stop()
FYI. Я тоже искал этот ответ (пытаясь остановить эффект пульсации), но в моем коде у меня был .stop()
.
После просмотра документов мне понадобилось .stop(true, true)
.stop (true, true) заморозит эффект, поэтому, если он невидим в то время, он остается невидимым. Это может быть проблемой, если вы используете эффект пульсации.
$('#identifier').effect("pulsate", {times:5}, 1000);
Чтобы обойти это, я добавил
$('#identifier').stop(true, true).effect("pulsate", { times: 1 }, 1);
.stop()
в моем коде. После рассмотрения документов мне понадобилось.stop(true, true)
– Dutchie432 29 August 2011 в 18:55.stop()
, но он не сработал. Теперь он работает так, как ожидалось. Что может сделать комментарий? Это также ответ ...: D Поисковый аутсорсинг был веселым: o) – Leniel Maccaferri 23 April 2012 в 04:39