Ich versuche, einen Komponententest für Code zu schreiben, der programmatisch UIButtons erstellt, aber wenn ich diesen Code aus dem Test aufrufen, erhalte ich eine NullReferenceException
. Beim Durchgehen im Debugger sieht es so aus, als ob UIButton.FromType()
null zurückgibt.Erstellen von iOS-UI-Komponenten von NUnit-Testcode
Hier ist die Methode Ich teste:
public UIButton makeButton (String title, Action<IWelcomeController> action)
{
UIButton button = UIButton.FromType (UIButtonType.RoundedRect);
// button is null here
button.SetTitle(title, UIControlState.Normal);
button.TouchUpInside += (sender, e) => {
action(controller);
};
return button;
}
Und hier ist die Testmethode:
[Test()]
public void TestMakeButtonTitle()
{
String title = "Elvis";
UIButton button = GetFactory().makeButton(title, delegate(IWelcomeController w) {});
Assert.AreEqual(title, button.Title(UIControlState.Normal));
}
Ich vermute, einige magische ich es brauchen umwelt klug, um zu tun, um MonoTouch.UIKann außerhalb einer realen Anwendung arbeiten. Irgendwelche Hinweise? (Und wenn es nicht möglich ist, vorgeschlagene alternative Ansätze?)
Wenn dies der Fall wäre, würde ich erwarten, dass der Code nicht kompilieren oder explodieren, wenn ich versuche, die UIButton-Klasse zu laden, oder FromType() aufrufen. Ich würde nicht erwarten, dass der Aufruf von FromType() erfolgreich ist, aber null zurückgibt. –