aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/mozilla/add-ons/sdk/tutorials/unit_testing/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-br/mozilla/add-ons/sdk/tutorials/unit_testing/index.html')
-rw-r--r--files/pt-br/mozilla/add-ons/sdk/tutorials/unit_testing/index.html127
1 files changed, 0 insertions, 127 deletions
diff --git a/files/pt-br/mozilla/add-ons/sdk/tutorials/unit_testing/index.html b/files/pt-br/mozilla/add-ons/sdk/tutorials/unit_testing/index.html
deleted file mode 100644
index 2e65659ed5..0000000000
--- a/files/pt-br/mozilla/add-ons/sdk/tutorials/unit_testing/index.html
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: Teste de unidade
-slug: Mozilla/Add-ons/SDK/Tutorials/Unit_testing
-tags:
- - Add-on SDK
- - JPM
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Unit_testing
----
-<div class="note">
-<p><span>Para seguir este tutorial você precisará ter conhecimento básico de<a href="/en-US/docs/Mozilla/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29"> <code>jpm</code></a> e ter seguido o tutorial de <a href="/en-US/Add-ons/SDK/Tutorials/Using_third-party_modules_(jpm)">criação de módulos reutilizáveis</a>.</span></p>
-</div>
-
-<div class="note">
-<p>Se você está migrando código de teste do cfx para o <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>, veja o guia de migração do cfx, em particular a seção <a href="/en-US/Add-ons/SDK/Tools/cfx_to_jpm#Requiring_modules_from_test_code">loading modules from test code</a>.</p>
-</div>
-
-<p>O SDK fornece um framework para ajudar a criar e executar testes de unidade para seu código. Para demonstrar como ele funciona nós escreveremos um teste de unidade para um módulo simples de codificação <a href="http://en.wikipedia.org/wiki/Base64">Base64</a>.</p>
-
-<h2 id="Um_módulo_simples_Base64">Um módulo simples Base64</h2>
-
-<p>Em uma página web, você pode executar uma codificação Base64 e decodificação usando as funções <code>btoa()</code> e <code>atob()</code>. Infelizmente essas funções pertencem ao objeto <code>window</code>: uma vez que o objeto não está disponível no código principal do add-on, <code>atob()</code> e <code>btoa()</code> não estão disponíveis de qualquer forma. Então nós criaremos um módulo <code>base64</code> para exibir estas funções da plataforma.</p>
-
-<p>Para começar, crie um novo diretório, navegue para ele, e execute o <code>jpm init</code>. Agora crie um novo arquivo chamado "base64.js", e de lhe o seguinte conteúdo:</p>
-
-<pre class="brush: js">const { atob, btoa } = require("chrome").Cu.import("resource://gre/modules/Services.jsm", {});
-
-exports.atob = a =&gt; atob(a);
-exports.btoa = b =&gt; btoa(b);
-</pre>
-
-<p>Este código exporta duas funções, que chamamos <code>btoa()</code> and <code>atob()</code>. Para mostrar o módulo em uso, edit o arquivo "index.js" como segue:</p>
-
-<pre class="brush: js">var base64 = require("./base64");
-
-var button = require("sdk/ui/button/action").ActionButton({
-  id: "base64",
-  label: "base64",
-  icon: "./icon-16.png",
-  onClick: function() {
-    encoded = base64.btoa("hello");
-    console.log(encoded);
-    decoded = base64.atob(encoded);
-    console.log(decoded);
-  }
-});</pre>
-
-<p>Para executar esse exemplo você também terá que ter um ícone chamado "icon-16.png" salvo no diretório data do add-on. Você pode baixar este ícone: <img alt="" src="https://mdn.mozillademos.org/files/7661/icon-16.png" style="height: 16px; width: 16px;">.</p>
-
-<p>Agora o "index.js" importa o módulo base64 e chama suas duas funções exportadas. Se nós executarmos o add-on e clicarmos no botão, nós devemos ver a seguinte saída:</p>
-
-<pre>info: aGVsbG8=
-info: hello
-</pre>
-
-<h2 id="Testando_o_módulo_Base64">Testando o módulo Base64</h2>
-
-<p>Navegue para o diretório <code>test</code> e delete o arquivo <code>test-index.js</code>. Em seu lugar crie um arquivo chamado <code>test-base64.js</code> com o seguinte conteúdo:</p>
-
-<pre class="brush: js">var base64 = require("../base64");
-
-exports["test atob"] = function(assert) {
- assert.ok(base64.atob("aGVsbG8=") == "hello", "atob works");
-}
-
-exports["test btoa"] = function(assert) {
- assert.ok(base64.btoa("hello") == "aGVsbG8=", "btoa works");
-}
-
-exports["test empty string"] = function(assert) {
- assert.throws(function() {
- base64.atob();
- },
- "empty string check works");
-}
-
-require("sdk/test").run(exports);
-</pre>
-
-<div class="note">
-<p>Note que com o  jpm nós devemos dar o caminho exato do módulo base64.js.</p>
-</div>
-
-<p>Esse arquivo: exporta três funções, cada qual espera receber um único argumento que é o objeto <code>assert</code>. <code>assert</code> é fornecida pelo módulo <a href="/en-US/Add-ons/SDK/Low-Level_APIs/test_assert"><code>test/assert</code></a> e implementa o <a href="http://wiki.commonjs.org/wiki/Unit_Testing/1.1">CommonJS Unit Testing specification</a>.</p>
-
-<ul>
- <li>
- <p>As duas primeiras funções chamam <code>atob()</code> e <code>btoa()</code> e usa o <a href="/en-US/Add-ons/SDK/Low-Level_APIs/test_assert#ok(guard.2C_message)"><code>assert.ok()</code></a> para checar que a saída é a esperada</p>
- </li>
- <li>
- <p>A segunda função testo código de manipulação de erro do módulo passando uma string vazia para o <code>atob()</code> e usando <a href="/en-US/Add-ons/SDK/Low-Level_APIs/test_assert#throws(block.2C_error.2C_message)"><code>assert.throws()</code></a> para checar que a exceção esperada foi lançada.</p>
- </li>
-</ul>
-
-<p>Neste ponto seu add-on deve parecer com isto:</p>
-
-<pre> /base64
- /data
- icon-16.png
- package.json
- README.md
- index.js
- base64.js
- /test
- test-base64.js
-</pre>
-
-<p>Agora execute o <code>jpm --verbose test</code> da pasta principal do add-on. Você deve ver algo como isto:</p>
-
-<pre>console.info: jpm-utest: executing './test/test-base64.test atob'
-console.info: jpm-utest: pass: atob works
-console.info: jpm-utest: executing './test/test-base64.test btoa'
-console.info: jpm-utest: pass: btoa works
-console.info: jpm-utest: executing './test/test-base64.test empty string'
-console.info: jpm-utest: pass: empty string check works
-
-3 of 3 tests passed.
-All tests passed!</pre>
-
-<p>O que aconteceu aqui é que o <code>jpm test</code>:</p>
-
-<ul>
- <li>procura no diretório <code>test</code> o seu pacote</li>
- <li>carrega qualquer módulo cujo nome começa com a palavra <code>test- </code>(Note o hífen depois de<span> "test" no nome do módulo. <code>jpm test</code> incluirá um módulo chamado "test-myCode.js", mas excluirá módulos chamados "test_myCode.js" ou "testMyCode.js".)</span></li>
- <li>chama cada função exportada cujo nome começa com "test", passando um objeto <a href="/en-US/Add-ons/SDK/Low-Level_APIs/test_assert#Assert"><code>assert</code></a> como seu único argumento.</li>
-</ul>
-
-<p>Obviamente, você não tem que passar a opção<code> --verbose</code> para o jpm se você não quiser; fazendo assim torna a saída mais fácil de ler.</p>