NativeScript - Teste
O teste é uma fase muito importante no ciclo de vida de desenvolvimento de um aplicativo. Garante a qualidade da aplicação. Precisa de planejamento e execução cuidadosos. É também a fase mais demorada do desenvolvimento. A estrutura NativeScript fornece um amplo suporte para o teste automatizado de um aplicativo.
Tipos de teste
Geralmente, três tipos de processos de teste estão disponíveis para testar um aplicativo. Eles são os seguintes -
Teste de Unidade
O teste de unidade é o método mais fácil de testar um aplicativo. Baseia-se em garantir a correção de um trecho de código (uma função, em geral) ou um método de uma classe. Mas, ele não reflete o ambiente real e posteriormente. É a menor opção para encontrar os bugs.
Geralmente, NativeScript usa as estruturas de teste de unidade Jasmine, Mocha com Chai e QUnit.
Para fazer isso, primeiro você precisa configurar em seu projeto usando o comando abaixo -
tns test init
Agora, você obtém a seguinte resposta -
? Select testing framework: (Use arrow keys)
> jasmine
mocha
qunit
Agora, selecione jasmine estrutura e sua tela é semelhante a esta -
? Select testing framework: jasmine
+ [email protected]
added 90 packages from 432 contributors and audited 11944 packages in 8.753s
+ [email protected]
added 2 packages from 1 contributor and audited 11946 packages in 7.299s
> [email protected] postinstall
/Users/workspace/NativeScript/NativeApp/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for
polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open
Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock ) is looking for a
good job -)
npm WARN [email protected] requires a peer of [email protected]^2.0.0
|| ^3.0.0 but none is installed. You must install peer dependencies yourself.
+ [email protected]
added 19 packages from 52 contributors and audited 12012 packages in 9.368s
+ [email protected]
added 2 packages from 35 contributors and audited 12014 packages in 6.925s
+ [email protected]
updated 1 package and audited 12014 packages in 7.328s
+ @types/[email protected]
> [email protected] postinstall /Users/deiva/workspace/NativeScript/NativeApp/node_modules/nativescript-unit
-test-runner
> node postinstall.js
+ [email protected]
added 1 package from 1 contributor and audited 12032 packages in 7.14s
Successfully installed plugin nativescript-unit-test-runner.
Example test file created in src/tests
Run your tests using the "$ tns test <platform>" command.
Agora, o arquivo de teste é criado dentro de src \ tests \ example.ts.
Crie seus testes
Vamos adicionar um teste simples dentro do arquivo example.ts como mostrado abaixo -
describe("NativeApp test:", function() {
it("Check counter.", function() {
expect(mainViewModel.createViewModel().counter).toEqual(10);
});
it("Check message.", function () {
expect(mainViewModel.createViewModel().message).toBe("10 taps left");
});
});
Aqui,
Primeiro, verifique se o contador é igual a 10 e verifique se faltam 10 toques para a mensagem.
Deixe-nos executar o teste na próxima etapa.
Execute seus testes
Agora, execute o teste no dispositivo conectado Android ou iOS usando o comando abaixo -
tns test android
Isso retornará o seguinte status -
? To continue, choose one of the following options: (Use arrow keys)
> Configure for Cloud Builds
Configure for Local Builds
Configure for Both Local and Cloud Builds
Skip Step and Configure Manually
Em seguida, escolha a opção abaixo -
? To continue, choose one of the following options: Configure for Local Builds
Running the setup script to try and automatically configure your environment.
These scripts require sudo permissions
.....
Para executar seu conjunto de testes no simulador Android, execute o seguinte comando -
tns test android --emulator
Agora, o karma server prepara builds e implanta seu projeto.
Teste de ponta a ponta (E2E)
Os testes de unidade são processos pequenos, simples e rápidos, ao passo que, na fase de teste E2E, vários componentes estão envolvidos e funcionam juntos, cobrindo os fluxos no aplicativo. Isso não poderia ser alcançado por testes de unidade e integração.
NativeScript Appiumplugin é usado para realizar testes de automação E2E. Bem, Appium é uma estrutura de teste de código aberto para aplicativos móveis. Para adicionar esta estrutura em seu projeto, você deve ter a versão mais recente do XCode ou Android SDK acima de 25.3.0.
Instale Appium
Vamos instalar o Appium globalmente usando o módulo npm -
npm install -g appium
Agora, você pode ver a seguinte resposta -
npm install -g appium
/Users/.npm-global/bin/authorize-ios ->
/Users/.npm-global/lib/node_modules/ appium/node_modules/.bin/authorize-ios
> [email protected] install
/Users/.npm-global/lib/node_modules/ appium/node_modules/appium-windows-driver
> node install-npm.js
Not installing WinAppDriver since did not detect a Windows system
> [email protected] postinstall /Users/.npm-
global/lib/node_modules/appium/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for
polyfilling JavaScript
standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock )
is looking for a good job -)
> [email protected] postinstall/Users/.npm-
global/lib/node_modules/appium/node_modules
/appium-chromedriver
> node install-npm.js
............................................
.............................................
+ [email protected]
added 671 packages from 487 contributors in 28.889s
Adicionar Plugin
Vamos adicionar nativescript-dev-appium plugin como um devDependency para o seu projeto usando o comando abaixo -
$ npm install -D nativescript-dev-appium
Depois de executar isso, escolha mocha estrutura e você obterá uma resposta semelhante a esta -
> node ./postinstall.js
? What kind of project do you use
? javascript ? Which testing framework do you prefer? mocha
+ [email protected]
Agora, os arquivos são armazenados dentro da pasta do projeto.
Construa seu dispositivo
Vamos construir um dispositivo Android usando o comando abaixo -
tns build android
O comando acima irá executar os testes e deve especificar os recursos desejados. Se você tem um dispositivo iOS, pode construir usandoiOS dispositivo.
Teste de corrida
Agora, configuramos o dispositivo. Vamos executar nosso teste usando o comando abaixo -
npm run e2e -- --runType <capability-name>
Aqui,
nome-da-capacidade é definido dentro de seu aplicativo e2e/config/appium.capabilities.json.
Resultado
NativeScript - Conclusão
NativeScript é um ótimo aplicativo móvel para desenvolvedores da Web testarem seus aplicativos completamente de uma maneira muito fácil, sem colocar esforços extras. Os desenvolvedores podem desenvolver com segurança um aplicativo atraente e bem-sucedido, sem problemas em um curto período de tempo.