Sobre o projeto
# 📸 SnapshotTesting
Testes de snapshot Swift encantadores. Esta biblioteca permite escrever testes de snapshot para qualquer valor, em qualquer formato, em qualquer plataforma Swift. Ela oferece suporte a views, view controllers, requisições de URL, valores Encodable e muito mais.
## Uso
Após a instalação, nenhuma configuração adicional é necessária. Importe o módulo `SnapshotTesting` e chame a função `assertSnapshot`.
```swift
import SnapshotTesting
import Testing
@MainActor
struct MyViewControllerTests {
@Test func myViewController() {
let vc = MyViewController()
assertSnapshot(of: vc, as: .image)
}
}
```
Quando uma asserção é executada pela primeira vez, um snapshot é gravado automaticamente em disco e o teste falha, imprimindo o caminho do arquivo da referência recém-gravada. Execuções repetidas do teste carregam essa referência e a comparam com o valor em tempo de execução. As falhas podem ser inspecionadas no Report Navigator do Xcode ou examinando as URLs dos arquivos.
Você pode gravar novas referências personalizando snapshots inline ou usando a ferramenta `withSnapshotTesting`.
## Snapshot de Qualquer Coisa
Diferentemente da maioria das bibliotecas de testes de snapshot, limitadas a `UIImage`s de `UIView`s, o SnapshotTesting funciona com qualquer formato de qualquer valor em qualquer plataforma Swift. A função `assertSnapshot` aceita um valor e qualquer estratégia de snapshot compatível com esse valor.
Os testes de views são altamente configuráveis. Você pode sobrescrever coleções de traits e gerar snapshots independentes de dispositivo a partir de um único simulador.
As estratégias de snapshot disponíveis incluem:
- `.image` para views e view controllers
- `.recursiveDescription` para representação textual de hierarquias de views
- `.raw` para requisições de URL
- `.json` e `.plist` para valores `Encodable`
- `.dump` para qualquer valor usando seu mirror
## Recursos
- Dezenas de estratégias de snapshot
- Escreva suas próprias estratégias de snapshot
- Nenhuma configuração necessária
- Mais hands-off: novos snapshots são gravados automaticamente
- Sem subclasses: faça asserções a partir de qualquer caso XCTest ou spec Quick
- Snapshots independentes de dispositivo
- Suporte de primeira classe ao Xcode com diferenças de imagem como anexos do XCTest
- Suporta qualquer plataforma que suporte Swift (iOS, Linux, macOS, tvOS)
- Suporte a SceneKit, SpriteKit e WebKit
- Suporte a `Codable`
- Integração com ferramentas de diff personalizadas
## Instalação
### Xcode
Adicione o pacote via Swift Packages, garantindo que ele seja adicionado a um target de teste.
### Swift Package Manager
Adicione o pacote como dependência em `Package.swift` e adicione `SnapshotTesting` ao seu target de teste.
## Plug-ins
Vários plug-ins da comunidade estendem a funcionalidade, incluindo testes de acessibilidade, simulação de daltonismo, testes de migração de banco de dados SQLite, matchers Nimble, snapshots de previews do SwiftUI, testes de snapshot HTML e mais.
## Ferramentas Relacionadas
Inspirada em `iOSSnapshotTestCase` e Jest, esta biblioteca traz testes de snapshot generalizados para Swift com uma experiência de usuário refinada.
## Licença
Lançada sob a licença MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.