从 NUnit 测试代码创建 iOS UI 组件

2023-12-29

我正在尝试为一些以编程方式创建 UIButtons 的代码编写单元测试,但是当我从测试中调用此代码时,我得到了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 在真实应用程序之外工作。有什么提示吗? (如果不可能,建议其他方法吗?)


现在可以肯定的是,根本问题是,如果您不是在 iPhone 上或 iPhone 模拟器中运行,则无法调用必要的本机 API 来实例化组件。

也许有一天有人会为 Monotouch 编译 NUnit 并编写一个 iOS 测试运行程序......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 NUnit 测试代码创建 iOS UI 组件 的相关文章

随机推荐