Utilizzando FsCheck, la versione F # della libreria di test Haskell QuickCheck, per generare test da C#, ho trovato che il generatore di stringhe casuali non genera la stringa nulla.Come generare stringhe null per i test FsCheck
using FsCheck.Fluent;
Spec.ForAny<string>(s => s != null).QuickCheck(); // always pass
Inoltre, ci sembra di non gestire stringhe nulle in base alla progettazione, ma non sono riusciti a pin giù from the documentation. Ad esempio, proprio raccogliendo tra due stringhe, uno di loro nulla, non funziona:
var strings = Any.ValueIn<string>(null, "non-null string");
Spec.For(strings, s => true).QuickCheck(); // throws null ref exception
e stringhe sembra essere un caso speciale, perché gestisce gli oggetti su misura, come
class Thing {}
se mescolato con valori nulli:
var objects = Any.ValueIn(null, new Thing());
Spec.For(objects, s => true).QuickCheck(); // pass
Se si tratta di un bug, questo potrebbe causare problemi se risolto. Quindi potrebbero aggiornarlo in una "funzione". – Alapago
@ user2046431 Ne dubito fortemente, in quanto questo caso fallirà per e solo per 'stringa' nullo. E anche se decidessero di aggiornarlo a una funzione, potrebbero almeno voler rintracciarla da qualche parte sul loro sito. –
Concordato che questo dovrebbe andare al loro tracker dei problemi, e che il fixing del restringitore in modo che non soffochi sui valori nulli non romperebbe nulla. Stavo pensando al "bug" di non generare nulla per impostazione predefinita. – Alapago