Sto studiando il cookbook di base della struttura di entità di packtpub sul test delle unità, c'è un esempio (ho apportato qualche modifica)
[Fact]
public void CanCreateDatabase()
{
var blogContext = new BlogContext(_builder.Options);
var created = blogContext.Database.EnsureCreated();
Assert.True(created);
}
[Fact]
public void CanRetrieveRecord()
{
var blogContext = new BlogContext(_builder.Options);
var blog1 = blogContext.Blogs.FirstOrDefault();
Assert.Contains("Development", blog1.Name);
}
Il primo test fallisce, il secondo passaggio. Sono abbastanza sicuro che il database sia stato creato, ecco perché è passato il secondo test, ma perché il primo test fallisce?
Basato sulla documentazione di EnsureCreated
qui
ritorna
System.Boolean
Vero se il database è stato creato, false se già esistente.
Nei test precedenti, supponendo che non sia presente alcun database, per la prima esecuzione di test, EnsureCreated
creerà il database e supererà i test. Ma per ogni esecuzione successiva, il database è già presente, quindi EnsureCreated
restituisce false. Probabilmente si vorrà utilizzare l'uso di EnsureDeleted
prima di EnsureCreated
per assicurarsi che il database sia eliminato, in modo che sia possibile testarne l'effettiva creazione.