assertj / assertj/assertj-swing

Provide tooling to work with 3rd party libraries where the components are not named

Aperta
#256 1 commento 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
121
Fork
52
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I work a lot with 3rd party software where the UI has not been well designed and components generally do not have a 'name' attribute set, and that makes the matching code quite verbose, or sometimes impossible and I have to resort to reflection to access the components.

I've raised a PR https://github.com/assertj/assertj-swing/pull/255 which addresses this by providing a mechanism to set the name of components. It works as follows:

**Use the field name where possible. e.g.**

`private JTextField myText; // Set the name to be 'myText'`

**For anonymous fields, use a unique generated name. e.g.**

```
public void createComponents(){
add(new JTextField()); // Set the name to be 'JTextField-1'
add(new JTextField()); // Set the name to be 'JTextField-2'
}
```

**Optionally allow overwriting the names of fields. This is useful where the components have been given unsuitable or identical names.**

```
public void createComponentsBadly(){
textField1.setName("text1");
...
textField2.setName("text1");
}
```

**Optionally allow only using generated names. This is useful when the code has been obfuscated and the field names do not provide any meaning, or when the field names are confusing**

```
private JTextField a; // Set the name to be 'JTextField-1'
private JTextField b; // Set the name to be 'JTextField-2'
private JTextField combo1; // Set the name to be 'JTextField-3'
```

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia esaminando la pull request #255, che l’issue identifica come punto di ingresso proposto per la denominazione dei componenti. Verifica come vengono gestiti i nomi derivati dai campi, i nomi generati, la sovrascrittura e la modalità solo generata, e considera gli esempi in questa issue come criteri di completamento.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
desktop, testing
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.