Skip to content

Conversation

@yabellini
Copy link
Member

No description provided.

@yabellini yabellini added blog post Blog posts to be published when merged Tradução labels Aug 29, 2025
@yabellini
Copy link
Member Author

@fblpalmeira can you review this blog post?

Copy link
Contributor

@fblpalmeira fblpalmeira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done @yabellini! Sorry for my long delay.

doi: 10.59350/yt047-xf054
---

rOpenSci's [O segundo grupo de campeões foi integrado](/blog/2024/02/15/champions-program-champions-2024/)!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
rOpenSci's [O segundo grupo de campeões foi integrado](/blog/2024/02/15/champions-program-champions-2024/)!
rOpenSci's [O segundo grupo de campeões e campeãs foi integrado](/blog/2024/02/15/champions-program-champions-2024/)!

---

rOpenSci's [O segundo grupo de campeões foi integrado](/blog/2024/02/15/champions-program-champions-2024/)!
Seu treinamento começou com um [sessão sobre estilo de código](/blog/2024/02/22/beautiful-code/) foi seguido por três sessões sobre os fundamentos do desenvolvimento de pacotes R e terminou com uma sessão sobre [desenvolvimento avançado de pacotes R](https://rpkgdev-rocket-2024.netlify.app/) que consistiu em um pot-pourri de dicas com discussão, seguido de tempo para aplicar esses princípios aos pacotes dos participantes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Seu treinamento começou com um [sessão sobre estilo de código](/blog/2024/02/22/beautiful-code/) foi seguido por três sessões sobre os fundamentos do desenvolvimento de pacotes R e terminou com uma sessão sobre [desenvolvimento avançado de pacotes R](https://rpkgdev-rocket-2024.netlify.app/) que consistiu em um pot-pourri de dicas com discussão, seguido de tempo para aplicar esses princípios aos pacotes dos participantes.
O treinamento começou com uma [sessão sobre estilo de código](/blog/2024/02/22/beautiful-code/), foi seguido por três sessões sobre os fundamentos do desenvolvimento de pacotes R e terminou com uma sessão sobre [desenvolvimento avançado de pacotes R](https://rpkgdev-rocket-2024.netlify.app/) que consistiu em um pot-pourri de dicas com discussão, seguido de tempo para aplicar esses princípios aos pacotes das pessoas participantes.

})
```

Esse não é um padrão ideal porque você não pode examinar cada `test_that()` teste isoladamente e entender rapidamente o que está acontecendo.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Esse não é um padrão ideal porque você não pode examinar cada `test_that()` teste isoladamente e entender rapidamente o que está acontecendo.
Esse não é um padrão ideal porque você não pode examinar cada teste `test_that()` isoladamente e entender rapidamente o que está acontecendo.

```

Esse não é um padrão ideal porque você não pode examinar cada `test_that()` teste isoladamente e entender rapidamente o que está acontecendo.
Em um arquivo de teste muito longo, você teria até mesmo que rolar a tela para cima e para baixo!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Em um arquivo de teste muito longo, você teria até mesmo que rolar a tela para cima e para baixo!
Em um arquivo de teste muito longo, você teria que rolar a tela para cima e para baixo!

Nesta etapa, lembramos diligentemente sobre DRY, Don't Repeat Yourself (Não se repita), e sobre a mecânica de [arquivos auxiliares de teste](https://blog.r-hub.io/2020/11/18/testthat-utility-belt/):
arquivos cujos nomes começam com `helper-` são carregados antes de todos os testes.

Portanto, criamos um arquivo auxiliar (`helper-swamp.R`) no qual o `test_object` é definido e, portanto, disponível para testes!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Portanto, criamos um arquivo auxiliar (`helper-swamp.R`) no qual o `test_object` é definido e, portanto, disponível para testes!
Portanto, criamos um arquivo auxiliar (`helper-swamp.R`) no qual o `test_object` é definido e, desta forma, disponível para testes!


Outra consideração que não abordamos aqui são os testes que exigem elementos específicos, como variáveis de ambiente ou opções. Nesses casos, tente usar [withr](https://withr.r-lib.org/) como [`withr::local_envvar()`](https://withr.r-lib.org/reference/with_envvar.html) em cada teste que o exigir.

Uma ideia poderosa do livro ["Engenharia de software no Google"](https://www.oreilly.com/library/view/software-engineering-at/9781492082781/) de Titus Winters, Tom Manshreck e Hyrum Wright, é que o código pode se dar ao luxo de ser um pouco menos óbvio porque tem testes que o cobrem, mas o código de teste, que não é coberto por testes, não tem esse luxo.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Uma ideia poderosa do livro ["Engenharia de software no Google"](https://www.oreilly.com/library/view/software-engineering-at/9781492082781/) de Titus Winters, Tom Manshreck e Hyrum Wright, é que o código pode se dar ao luxo de ser um pouco menos óbvio porque tem testes que o cobrem, mas o código de teste, que não é coberto por testes, não tem esse luxo.
Uma ideia poderosa do livro ["Software Engineering at Google"](https://www.oreilly.com/library/view/software-engineering-at/9781492082781/) de Titus Winters, Tom Manshreck e Hyrum Wright, é que o código pode se dar ao luxo de ser um pouco menos óbvio porque tem testes que o cobrem, mas o código de teste, que não é coberto por testes, não tem esse privilégio.


## Outros recursos

- Os três capítulos sobre testes de pacotes do livro R packages, de Hadley Wickham e Jenny Bryan, são uma leitura altamente recomendada: [Noções básicas de teste](https://r-pkgs.org/testing-basics.html), [Projetando seu conjunto de testes](https://r-pkgs.org/testing-design.html), [Técnicas avançadas de teste](https://r-pkgs.org/testing-advanced.html).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Os três capítulos sobre testes de pacotes do livro R packages, de Hadley Wickham e Jenny Bryan, são uma leitura altamente recomendada: [Noções básicas de teste](https://r-pkgs.org/testing-basics.html), [Projetando seu conjunto de testes](https://r-pkgs.org/testing-design.html), [Técnicas avançadas de teste](https://r-pkgs.org/testing-advanced.html).
- Os três capítulos sobre testes de pacotes do livro R packages, de Hadley Wickham e Jenny Bryan, são uma leitura altamente recomendada: [Testing basics](https://r-pkgs.org/testing-basics.html), [Designing your test suite](https://r-pkgs.org/testing-design.html), [Advanced testing techniques](https://r-pkgs.org/testing-advanced.html).


- Os três capítulos sobre testes de pacotes do livro R packages, de Hadley Wickham e Jenny Bryan, são uma leitura altamente recomendada: [Noções básicas de teste](https://r-pkgs.org/testing-basics.html), [Projetando seu conjunto de testes](https://r-pkgs.org/testing-design.html), [Técnicas avançadas de teste](https://r-pkgs.org/testing-advanced.html).

- Postagem no blog [Por que os bons desenvolvedores escrevem testes de unidade ruins](https://mtlynch.io/good-developers-bad-tests/) por Michael Lynch.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Postagem no blog [Por que os bons desenvolvedores escrevem testes de unidade ruins](https://mtlynch.io/good-developers-bad-tests/) por Michael Lynch.
- Postagem no blog [Why Good Developers Write Bad Unit Tests](https://mtlynch.io/good-developers-bad-tests/) por Michael Lynch.

Nos arquivos de teste, removemos a primeira linha que definia `test_object`.

Agora as coisas ainda não estão perfeitas.
Quando olhamos para qualquer um dos arquivos de teste, não podemos realmente saber o que você quer dizer. `test_object` é, pois seu nome não é "descritivo e significativo".
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Quando olhamos para qualquer um dos arquivos de teste, não podemos realmente saber o que você quer dizer. `test_object` é, pois seu nome não é "descritivo e significativo".
Quando olhamos para qualquer um dos arquivos de teste, não podemos realmente saber o que é `test_object`, pois seu nome não é "descritivo e significativo".


Agora, embora a definição real da lista básica não esteja em todos os testes, temos uma ideia melhor do que está acontecendo ao ler o teste.

Além disso, se o teste falhasse, poderíamos executar no console `devtools::load_all()` e executar o código do teste, como `devtools::load_all()` carrega os arquivos auxiliares do teste de modo que `basic_list()` estejam disponíveis.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Além disso, se o teste falhasse, poderíamos executar no console `devtools::load_all()` e executar o código do teste, como `devtools::load_all()` carrega os arquivos auxiliares do teste de modo que `basic_list()` estejam disponíveis.
Além disso, se o teste falhasse, poderíamos executar `devtools::load_all()` no console e executar o código do teste, já que `devtools::load_all()` carrega os arquivos auxiliares do testthat, tornando `basic_list()` disponível.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blog post Blog posts to be published when merged Tradução

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants