2

モック関数が呼び出されたことをテストするにはどうすればよいですか?

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()構造が空であるように見えます...

4

1 に答える 1

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 手順をモックする方法

于 2014-05-29T06:37:36.057 に答える