我想为编程创建UIButtons的某些代码编写单元测试,但是当我从测试中调用此代码时,我得到一个NullReferenceException
。在调试器中逐步完成,它看起来像UIButton.FromType()
返回null。从NUnit测试代码创建iOS UI组件
下面是我测试的方法:
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在真正的应用程序之外工作。任何提示? (如果这是不可能的,建议的替代方法?)
如果是这种情况,我希望代码不要编译,或者在尝试加载UIButton类或调用FromType()时炸掉。我不希望FromType()调用成功,但返回null。 – 2010-10-26 21:07:13