2016-05-08 3 views
1

Чтобы проверить приложение Кордовы, мне нужно запустить его в эмуляторе или на физическом устройстве. Это медленный процесс, поэтому вместо этого я тестирую его в браузере.Имитировать плагины Кордовы в браузере

Но браузер не имеет базы данных контактов, поэтому контактный плагин не работает.

Есть ли способ добавить в браузер для издевательств (контакты, подборщики дат и т. Д.) Для быстрого тестирования?

ответ

0

Доступ к вашим плагинам через сервис с четким и точным интерфейсом. Таким образом, вы сможете обеспечить различные реализации этого интерфейса для тестирования или производства.

Взгляните на этот очень простой пример типа TypeScript app. Я создал interface для службы, которая сообщает вам, находится ли ваше устройство в сети. Моя реализация для «производства» выглядит как this. Для тестирования я мог бы обеспечить еще одну реализацию, не зависящую от кордовой сети-плагина, но, например, просто возвращаю true или false случайным образом.

Вы также можете перенести это на контакты: постройте интерфейс и различные реализации, вернув фактические контакты (в процессе производства) или некоторые (более или менее) жестко закодированные контакты случайным образом (при тестировании).

+0

Спасибо, это похоже на большую работу (я не уверен). Я надеялся на какое-то готовое решение, такое как расширение Chrome. – bgst

+0

Это довольно много, но это лучшая практика, так как она также помогает писать единицы управляемого и проверяемого кода. Многие фреймворки, такие как угловые, поддерживают [сервисы] (https://docs.angularjs.org/guide/services) и [службы единичного тестирования] (https://docs.angularjs.org/guide/services) ... – Phonolog

4

вы можете использовать http://incubator.apache.org/projects/ripple.html

процесс установки прост

npm install -g ripple-emulator 

затем перейти в каталог Cordova проекта и запустить.

cordova prepare 

затем запустить следующий начать Simulator

ripple emulate --path platforms/android/assets/www 

вы получите что-то вроде этого Screenshot of ripple emulator

увидеть подробное объяснение о ряби на raymondcamden's blog

+0

Спасибо, я попробовал, и это было здорово. Но контакты не имели телефонных номеров, и кажется, что редактировать контакты невозможно. Кроме того, плагин выбора даты не работал. – bgst

0

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

Некоторые плагины имеют реализацию для браузера, поэтому будет доступно полное api. У тех, у кого его нет, телефонная книга cli справится с этим.

Для того, чтобы использовать его, вы должны сначала установить платформу браузера:

$ cordova platform add browser 
$ phonegap serve 

Я пытался использовать cordova serve, но он не работает, как phonegap делает в моем случае.

После запуска phonegap serve вы можете отлаживать свое приложение в браузере.

UPDATE

От https://github.com/apache/cordova-plugin-contacts/pull/122/files вы могли бы реализовать свои собственные ответы обратного вызова.Это очень прямая реализация, что вы можете расширить, как вам нужно (см create, find, pickContact и contact для деталей реализации):

var contacts = []; 
var mockContacts = require('./mockContacts'); // This is a json mock file with your contacts 

function Contact(contact) { 
    var field; 
    for (field in contact) { 
     if (contact.hasOwnProperty(field)) { 
      this[field] = contact[field]; 
     } 
    } 
} 
Contact.prototype.clone = function() { 
    // You can implement this methods if needed as well 
} 
Contact.prototype.remove = function() { 
    // You can implement this methods if needed as well 
} 
Contact.prototype.save = function() { 
    // You can implement this methods if needed as well 
} 

mockContacts.map(function (contact) { 
    contacts.push(new Contact(contact)); 
}; 

function createContact(contact) { 
    var newContact = new Contact(contact); 
    contacts.push(newContact); 
    return newContact; 
} 

function findContact(contactFields, contactSuccess, contactError, contactFindOptions) { 
    contactSuccess = contactSuccess || function() {}; 
    contactSuccess(contacts); // You can filter the contacts if needed 
    return true; 
} 

function pickContact(contactSuccess, contactError) { 
    contactSuccess = contactSuccess || function() {}; 
    contactSuccess(contacts[0]); 
    return true; 
} 

module.exports = { 
    create: createContact, 
    find: findContact, 
    pickContact: pickContact 
}; 
+0

Я пробовал, но это не сработало. У меня возникла ошибка, когда я попытался получить доступ к базе данных контактов. – bgst

+0

Вы правы, все еще есть PR, вы можете следовать https://github.com/apache/cordova-plugin-contacts/pull/122, между тем, возможно, вы могли бы использовать ветку из реквестера или просто скопировать и вставить PR изменил файлы в вашей локальной папке плагинов – Miquel

+0

Я не совсем уверен, как писать «Контакты не поддерживается» в консоли поможет тестирование в браузере. Может быть, вы можете подробнее остановиться на этом ... Для меня имеет смысл обеспечить собственную реализацию для целей тестирования. – Phonolog

1

1) Cordova платформы добавить браузер -force

2) Cordova служить

3) в браузере: http://localhost:8000

4) нажмите "браузер" ссылку на экране. Он откроет ваше приложение.

+0

Сначала войдите в каталог проекта. и затем выполните эти команды. Кстати. адрес .. http: // localhost: 8000, и он работает как шарм .. :) просто потрясающий – MFarooqi

+0

Это должен быть выбранный ответ. Кстати. используйте Chrome Developer Tools для дальнейшего моделирования, как мобильный вид, касания и вращения и т. д. просто потрясающий – MFarooqi

Смежные вопросы