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.