【问题标题】:Dart Mocking a FunctionDart 模拟函数
【发布时间】:2014-05-29 03:45:59
【问题描述】:

如何测试是否调用了模拟函数?

我在Mocking with Dart - How to test that a function passed as a parameter was called? 上找到了这个示例,并尝试对其进行扩展以检查该函数是否被调用。

library test2;

import "package:unittest/unittest.dart";
import "package:mock/mock.dart";

class MockFunction extends Mock {
  call(int a, int b) => a + b;
}

void main() {
  test("aa", () {

    var mockf = new MockFunction();
    expect(mockf(1, 2), 3);
    mockf.getLogs(callsTo(1, 2)).verify(happenedOnce);
  });
}

看来 mockf.getLogs() 结构是空的...

【问题讨论】:

    标签: dart dart-unittest


    【解决方案1】:

    您必须模拟方法并在日志中指定它们的名称。这是工作代码:

    library test2;
    
    import "package:unittest/unittest.dart";
    import "package:mock/mock.dart";
    
    class MockFunction extends Mock {
      MockFunction(){
        when(callsTo('call')).alwaysCall(this.foo);
      }
      foo(int a, int b) {
        return a + b;
        }
    }
    
    void main() {
      test("aa", () {    
        var mockf = new MockFunction();
        expect(mockf(1, 2), 3);
        mockf.calls('call', 1, 2).verify(happenedOnce);
      });
    }
    

    编辑: 回答类似问题:Dart How to mock a procedure

    【讨论】:

    • 谢谢你 - 我现在知道如何在模拟类上记录对方法的调用。这是一个帮助!我想我没有正确表达我的问题。我将提出另一个关于如何模拟过程的问题.....
    猜你喜欢
    • 2014-08-04
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多