Come suggerisce il titolo, questo nome del test è solo un po' tra i migliori?Questo nome del test è un po 'esagerato
WhenChargeIsGreaterThanRestingChargeButLessThanChargeRestApproachStep_OnUpdate_ChargeIsSetToRestingCharge
Qualche suggerimento su come migliorare questo? o va bene così com'è?
Di seguito si riporta l'intero dispositivo di prova così com'è in modo da poter ottenere un certo contesto :)
public class NeuronTests
{
[Fact]
public void OnUpdate_NeuronFiresWhenChargeIsEqualToThreshold()
{
Neuron neuron = new Neuron();
bool fired = false;
neuron.Fired += (s, e) => fired = true;
neuron.Charge = Neuron.ChargeThreshold;
neuron.Update();
Assert.True(fired, "Neuron didn't fire");
}
[Fact]
public void OnUpdate_NeuronDoesntFireWhenChargeIsLessThanThreshold()
{
Neuron neuron = new Neuron();
bool fired = false;
neuron.Fired += (s, e) => fired = true;
neuron.Charge = Neuron.ChargeThreshold - 1f;
neuron.Update();
Assert.False(fired, "Neuron fired!");
}
[Fact]
public void OnUpdate_NeuronFiresWhenChargeIsGreaterThanThreshold()
{
Neuron neuron = new Neuron();
bool fired = false;
neuron.Fired += (s, e) => fired = true;
neuron.Charge = Neuron.ChargeThreshold + 1f;
neuron.Update();
Assert.True(fired, "Neuron didn't fire");
}
[Fact]
public void WhenNeuronFires_ChargeResetsToRestingCharge()
{
Neuron neuron = new Neuron();
neuron.Charge = Neuron.ChargeThreshold;
neuron.Update();
Assert.Equal(Neuron.RestingCharge, neuron.Charge);
}
[Fact]
public void AfterFiring_OnUpdate_NeuronWontFire()
{
Neuron neuron = new Neuron();
int fireCount = 0;
neuron.Fired += (s, e) => fireCount++;
neuron.Charge = Neuron.ChargeThreshold;
neuron.Update();
neuron.Charge = Neuron.ChargeThreshold;
neuron.Update();
Assert.Equal(1, fireCount);
}
[Fact]
public void WhenResting_OnUpdate_NeuronWillFire()
{
Neuron neuron = new Neuron();
int fireCount = 0;
neuron.Fired += (s, e) => fireCount++;
neuron.Charge = Neuron.ChargeThreshold;
neuron.Update();
neuron.Charge = Neuron.ChargeThreshold;
neuron.Update();
neuron.Charge = Neuron.ChargeThreshold;
neuron.Update();
Assert.Equal(2, fireCount);
}
[Fact]
public void WhenChargeIsGreaterThanRestingCharge_OnUpdate_ChargeDecreasesTowardsRestingCharge()
{
Neuron neuron = new Neuron();
neuron.Charge = Neuron.RestingCharge + (2 * Neuron.ChargeRestApproachStep);
neuron.Update();
Assert.Equal(Neuron.RestingCharge + Neuron.ChargeRestApproachStep, neuron.Charge);
}
[Fact]
public void WhenChargeIsGreaterThanRestingChargeButLessThanChargeRestApproachStep_OnUpdate_ChargeIsSetToRestingCharge()
{
Neuron neuron = new Neuron();
neuron.Charge = Neuron.RestingCharge + (Neuron.ChargeRestApproachStep * 0.5f);
neuron.Update();
Assert.Equal(Neuron.RestingCharge, neuron.Charge);
}
}
Che assomiglia a un nome che sarebbe venuto con. È un nome IMPRESSIONANTE per un caso di test!È cristallino, anche senza un commento, E si ottiene una risatina immaginando la reazione del primo programmatore di manutenzione che la guarda e pensa "che cosa ???" Se riesci a iniettare umorismo nel tuo codice senza compromettere la leggibilità o le prestazioni, tanto meglio. – David
chiaro, conciso, autodidatta ... cosa si può desiderare di più? –
Potrebbe essere utile un giorno quando hai un corridore di test che può eseguire un nome. –