Os recursos públicos focam padrões reproduzíveis. SDKs, firmware e documentos restritos continuam em canais aprovados.
Evidência comparável com método, versão e limites.
- Uma função de domínio que consome um evento de captura normalizado.
- Uma estrutura de teste já em execução no projeto.
- Uma regra clara sobre o que deve acontecer com valores duplicados, vazios e inválidos.
Padrão de publicação
Integre Android empresarial com evidência versionada.
Os recursos públicos focam padrões reproduzíveis. SDKs, firmware e documentos restritos continuam em canais aprovados.
- 01
Depende da sua porta, não da classe do dispositivo
O fluxo de trabalho de recebimento deve conhecer CaptureEvent e CapturePort. Não deve importar um gerenciador de scanner, constante de transmissão ou tipo específico de modelo.
- 02
Emitir eventos determinísticos
Forneça ao adaptador falso métodos explícitos para uma varredura válida, varredura duplicada, valor vazio e falha. Os testes tornam-se legíveis quando a entrada descreve o cenário do operador.
- 03
Afirme os resultados do negócio
Verifique movimentação de estoque, mensagens de validação e manuseio de duplicatas. Não afirme que um retorno de chamada de fornecedor foi chamado em um teste de negócios; que pertence ao teste do adaptador de hardware.
- 04
Mantenha o teste de hardware pequeno
Quando um dispositivo estiver disponível, execute um teste de fumaça focado para abertura, acionamento, decodificação e fechamento. O conjunto maior de fluxo de trabalho deve permanecer rápido e sem dispositivos.
Aplicações de exemplo / Kotlin
Padrões de SDK e API
Teste original duplo. É seguro publicar porque não inclui uma classe de fornecedor ou binário.
class FakeCapturePort : CapturePort {
private var listener: ((CaptureEvent) -> Unit)? = null
override fun open() = Unit
override fun start() = Unit
override fun stop() = Unit
override fun close() = Unit
override fun setListener(listener: (CaptureEvent) -> Unit) {
this.listener = listener
}
fun emit(value: String, symbology: String? = "test") {
listener?.invoke(CaptureEvent(value, symbology, Instant.now()))
}
}
@Test
fun receiving_a_valid_barcode_updates_stock() {
val scanner = FakeCapturePort()
val workflow = ReceivingWorkflow(scanner)
workflow.start()
scanner.emit("SKU-001")
assertEquals(ReceivingState.Accepted("SKU-001"), workflow.state)
}Distribuição de SDK
Controle de publicação
Nenhum binário do fornecedor, referência de API, firmware ou exemplo de código-fonte é publicado sem registrar a permissão de redistribuição e o escopo compatível.
Mova a configuração do hardware para um pequeno teste de fumaça do adaptador e mantenha as regras de domínio na porta falsa.
Adicione um evento duplicado explícito e afirme a transição de estado uma vez.
Rejeite no limite de normalização e exponha um estado recuperável pelo usuário.
Estados da evidência
Evidência comparável com método, versão e limites.
- 01
Execute os testes de adaptador falso em cada compilação CI.
- 02
Cubra casos válidos, vazios, duplicados, sobredimensionados e falhas de transporte.
- 03
Mantenha o adaptador específico do dispositivo atrás de um limite de pacote.
- 04
Execute um teste de fumaça em dispositivo físico separadamente para cada linha de base aprovada.
Recursos
Padrões de SDK e API
Nenhum binário do fornecedor, referência de API, firmware ou exemplo de código-fonte é publicado sem registrar a permissão de redistribuição e o escopo compatível.