Ok, j'ai un problème étrange. Je teste un usercontrol et ai le code comme ceci:L'installation/démontage de nunit ne fonctionne pas?
[TestFixture]
public myTestClass : UserControl
{
MyControl m_Control;
[Test]
public void TestMyControl()
{
m_Control = new MyControl();
this.Controls.Add(m_Control);
Assert.That(/*SomethingOrOther*/)
}
}
Cela fonctionne très bien, mais quand je change à:
[TestFixture]
public myTestClass : UserControl
{
MyControl m_Control;
[Setup]
public void Setup()
{
m_Control = new MyControl();
this.Controls.Add(m_Control);
}
[TearDown]
public void TearDown()
{
this.Controls.Clear();
}
[Test]
public void TestMyControl()
{
Assert.That(/*SomethingOrOther*/);
}
}
Je reçois un objet de référence non définie à une instance d'un objet. J'ai même sorti sur la console pour m'assurer que la configuration/démontage était en cours aux heures correctes, et ils étaient ... mais il n'augmente pas encore les commandes usercontrols.
modifier> Le code exact est:
[TestFixture]
public class MoneyBoxTests : UserControl
{
private MoneyBox m_MoneyBox;
private TextBox m_TextBox;
#region "Setup/TearDown"
[SetUp]
public void Setup()
{
MoneyBox m_MoneyBox = new MoneyBox();
TextBox m_TextBox = new TextBox();
this.Controls.Add(m_MoneyBox);
this.Controls.Add(m_TextBox);
}
[TearDown]
public void TearDown()
{
this.Controls.Clear();
}
#endregion
[Test]
public void AmountConvertsToDollarsOnLeave()
{
m_MoneyBox.Focus();
m_MoneyBox.Text = "100";
m_TextBox.Focus();
Assert.That(m_MoneyBox.Text, Is.EqualTo("$100.00"), "Text isn't $100.00");
}
[Test]
public void AmountStaysANumberAfterConvertToDollars()
{
m_MoneyBox.Focus();
m_MoneyBox.Text = "100";
m_TextBox.Focus();
Assert.That(m_MoneyBox.Amount, Is.EqualTo(100), "Amount isn't 100");
}
}
je reçois l'exception (s) à la demande m_MoneyBox.Focus() respectifs.
- Voir les commentaires Solved
! Je l'ai compris. J'apprécie beaucoup votre contribution. Le problème était que je re-déclarais la tirelire/zone de texte dans l'installation (par opposition à juste le renouveler). –
@SnOrfus: Cela est facile à faire lorsque vous faites la promotion d'un objet local dans un objet de classe entière.Ironiquement, vous l'avez bien dans votre pseudo-code. – Autodidact