Друг предложил вместо того, чтобы иметь класс бэкенда, который проверяет полномочия пользователя в каждой государственной функции (результаты кэшируются и не статичные), у меня должен быть более 'оптимизированный' сайт. Когда я отбросил бэкенд, я также отбрасываю код базы данных и объединил их в соответствующих полномочиях пользователя (основывайте пользователя, logged_in_user, модератор).
Код сайта выглядит лучше теперь, когда слияние их уменьшило LOC (тонны LOC на самом деле), и я пишу Метод () вместо бэкенда. Метод (), который увеличивает удобочитаемость. Однако теперь, когда у меня нет бэкенда, как я, предполагают к модульному тесту мой код? и что относительно вещей как пользователь файл загружают с различными расширениями? (txt по сравнению с jpg по сравнению с FLAC)
Знаете ли вы, что VB6 является статическим и динамическим?
Если объявляются переменные с заданным типом, то вы получаете статическое поведение:
Dim name as Label
Теперь вы можете получить доступ только к членам имени, которые являются Label
s и intellisense знает это.
При наличии класса и добавлении ключевого слова implements
класс может реализовать методы другого класса. Это наследование интерфейса, которое позволяет VB6. Вы можете получить полиморфизм во время выполнения.
Вы также можете объявить переменные так:
Dim proxy As Object
Теперь intellisense не дает вам никакой помощи и VB6 позволит вам сделать все, что вам нравится с прокси
:
proxy.foo()
Эта строка может сидеть внутри скомпилированной и запущенной программы и не повлечь за собой никаких правонарушений, особенно если она не запущена сама. Поиск выполняется только при выполнении строки.
Вы также можете выполнить:
set proxy = <any instance>
, и это будет выполняться. Неважно, имеет ли < любой экземпляр >
метод foo
или нет.
И тогда может быть назначен любой экземпляр любого класса, реализующего foo
, и вызванный метод и VB6 будут счастливы.
Обратите внимание, что по мере того, как вы становитесь все более динамичным, существуют ограничения производительности во время выполнения.
-121--1318337-У меня была такая же проблема при попытке декодирования изображения из массива байтов. После некоторых экспериментов решение, по-видимому, заключается в назначении некоторого временного хранилища в параметрах BitmapFactory. Попробуйте:
Options options = new Options();
options.inTempStorage = new byte[256];
Bitmap newMapBitmap = BitmapFactory.decodeStream(instream, null, options);
Если проблема не решена сразу, попробуйте увеличить размер временного массива. Я думаю, что большие растровые файлы нуждаются в большем буфере для декодирования.
-121--2492531-Вы всегда можете использовать что-то вроде selenium , чтобы браузер управлял вашим веб-сайтом, а затем утверждать различные условия.
Технически не единичные тесты, я думаю. Но лучше, чем вообще никаких испытаний.
Вы можете использовать WatiN для автоматизации тестирования браузера...
Как сказал Codeape, есть альтернативы, чем модульное тестирование, альтернативой является Visual Studio's Website Test
Google говорил об этом на GTAC 2008. Они начали создавать заглушки и макеты для бэкэнда, а затем запускали свои тесты на селен для внешнего интерфейса. Это означает, что, когда интерфейс выполняет вызовы серверной части, он возвращает что-то значимое.
Видео выступления здесь http://www.youtube.com/watch?v=5jjrTBFZWgk