【问题标题】:Unit Test to see if class methods are defined单元测试以查看是否定义了类方法
【发布时间】:2016-07-04 15:36:36
【问题描述】:

我只是想测试我的类方法是否已定义,例如:

export class GoalSettingsPage {

    public goal: Goal;

    constructor(
    ) {
        this.goal = this.navParams.get('goal');
    }

    saveForm(event) {
        this.viewCtrl.dismiss(this.goal);
    }

单元测试之类的:

xit('should have methods defined', () => {

    let g = new Goal()
    let np = new NavParams()
    let vc = new ViewController()
    let e = new Events()
    let fb = new FormBuilder()

    let settingModal = new GoalSettingsPage(np,vc,fb,e);

    expect (settingModal.saveForm(e).toBeDefined;
})

不工作。

【问题讨论】:

  • 为什么会调用settingModal.saveForm(e)?要检查它的存在,它不应该。顺便说一句,有一个语法错误,测试运行器应该警告你。
  • 那如何检查它的存在呢?
  • expect(settingModal.saveForm).toBeDefined()
  • 工作。写下我给你的答案。

标签: unit-testing angular jasmine karma-runner


【解决方案1】:

要测试类实例中方法的存在,它应该是

expect(settingModal.saveForm).toBeDefined()

或者,更准确地说,

expect(settingModal.saveForm).toBe(jasmine.any(Function));

【讨论】:

    猜你喜欢
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多