Estilos do ScalaTest
FlatSpec e FunSuite.
Estilos do ScalaTest é uma aula grátis de Scala for Backend Engineering & Functional Programming no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Scala for Backend Engineering & Functional Programming, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Scala for Backend Engineering & Functional Programming inclui 4 aulas no total.
O que é ScalaTest?
ScalaTest é a estrutura de testes mais usada para Scala. Uma característica marcante é oferecer vários estilos de teste, permitindo que as equipes escolham a sintaxe mais adequada à sua experiência.
Adicionando a Dependência
Você adiciona ScalaTest como uma dependência de teste em build.sbt. O escopo % Test mantém essa dependência fora do artefato de produção.
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.18" % TestPor que Vários Estilos?
Equipes diferentes preferem convenções diferentes: veteranos de xUnit gostam de FunSuite; equipes orientadas por comportamento gostam de FlatSpec ou WordSpec. ScalaTest oferece suporte a todos eles em um único mecanismo, então você escolhe um estilo por projeto para manter a consistência.
AnyFunSuite
AnyFunSuite usa o formato test("name") { ... }, familiar para usuários de JUnit. Cada bloco test é um caso de teste.
import org.scalatest.funsuite.AnyFunSuite
class MathSuite extends AnyFunSuite {
test("addition works") {
assert(1 + 1 == 2)
}
test("multiplication works") {
assert(2 * 3 == 6)
}
}AnyFlatSpec
AnyFlatSpec é lido como uma especificação: "A Stack" should "pop values" in { ... }. O assunto e o comportamento formam uma frase legível.
import org.scalatest.flatspec.AnyFlatSpec
class CalculatorSpec extends AnyFlatSpec {
"A Calculator" should "add two numbers" in {
assert(2 + 3 == 5)
}
it should "subtract two numbers" in {
assert(5 - 2 == 3)
}
}should versus must
Em FlatSpec, você pode usar should, must ou can como verbo. O significado é intercambiável; as equipes escolhem uma opção para manter a consistência.
import org.scalatest.flatspec.AnyFlatSpec
class ParserSpec extends AnyFlatSpec {
"A Parser" must "handle empty input" in {
assert("".isEmpty)
}
}it e they
Depois de nomear um assunto uma vez, use it (ou they) para adicionar outros comportamentos ao mesmo assunto sem repetir seu nome.
import org.scalatest.flatspec.AnyFlatSpec
class ListSpec extends AnyFlatSpec {
"A List" should "report its size" in {
assert(List(1, 2, 3).size == 3)
}
it should "reverse correctly" in {
assert(List(1, 2).reverse == List(2, 1))
}
}AnyFunSpec
AnyFunSpec agrupa testes com blocos describe aninhados e cláusulas it, produzindo uma saída hierárquica e legível.
import org.scalatest.funspec.AnyFunSpec
class SetSpec extends AnyFunSpec {
describe("A Set") {
describe("when empty") {
it("has size 0") {
assert(Set.empty[Int].size == 0)
}
}
}
}Testes pendentes e ignorados
Marque testes inacabados como pending ou ignore um deles usando ignore em vez de test/in. Ambos mantêm a suíte verde e sinalizam que ainda há trabalho a fazer.
import org.scalatest.funsuite.AnyFunSuite
class WipSuite extends AnyFunSuite {
test("feature not done") {
pending
}
ignore("flaky test") {
assert(false)
}
}Escolhendo um estilo
Orientações:
FunSuite— mínimo, semelhante ao xUnit e excelente para testes unitários.FlatSpec— frases de comportamento legíveis.FunSpec/WordSpec— agrupamento aninhado no estilo de especificação.
Escolha um por base de código e mantenha a consistência.
Executando os testes
Execute todos os testes com sbt test ou uma única suíte com sbt "testOnly *CalculatorSpec". ScalaTest relata o nome e o resultado de cada teste.
sbt test
sbt "testOnly *CalculatorSpec"Verificação rápida
Teste seus conhecimentos sobre os estilos do ScalaTest.
Recapitulação
Você aprendeu os estilos do ScalaTest:
- Adicione o ScalaTest com o escopo
% Test. AnyFunSuite: blocostest("...") { }.AnyFlatSpec: comportamentoshoulddo sujeitoin { }.AnyFunSpec:describe/itaninhados.- Escolha um estilo por projeto; execute com
sbt test.
Aprenda Scala com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 39
- Aulas
- 143
Perguntas Frequentes
A aula “Estilos do ScalaTest” é grátis?
Sim — o texto completo de “Estilos do ScalaTest” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Scala for Backend Engineering & Functional Programming, atualize para CoddyKit PRO. O curso de Scala for Backend Engineering & Functional Programming inclui 4 aulas no total.
O que vou aprender em “Estilos do ScalaTest”?
FlatSpec e FunSuite. Você pratica Scala for Backend Engineering & Functional Programming com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Scala for Backend Engineering & Functional Programming?
Nenhuma experiência prévia é necessária. Scala for Backend Engineering & Functional Programming no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Estilos do ScalaTest”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Scala for Backend Engineering & Functional Programming?
Sim. Cada aula de Scala for Backend Engineering & Functional Programming inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Estilos do ScalaTest
- Matchers
- Testes baseados em propriedades
- Mocks e fixtures