Я пытаюсь написать модульный тест для некоторого кода, который программно создает кнопки UIB, но когда я вызываю этот код из теста, я получаю NullReferenceException
. Проходя в отладчике, похоже, что UIButton.FromType()
возвращает ноль.
Вот метод, который я тестирую:
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;
}
А вот и метод испытания:
[Test()]
public void TestMakeButtonTitle ()
{
String title = "Elvis";
UIButton button = GetFactory().makeButton(title, delegate(IWelcomeController w) {});
Assert.AreEqual(title, button.Title(UIControlState.Normal));
}
Я полагаю, что есть что-то волшебное, что мне нужно сделать в среде, чтобы заставить MonoTouch.UIKit работать вне реального приложения. Есть намеки? (А если это невозможно, предложите альтернативные подходы?)