Unit testing 颤振:单元测试

Unit testing 颤振:单元测试,unit-testing,testing,dart,flutter,Unit Testing,Testing,Dart,Flutter,我正在尝试测试此函数: setToday(Map filters) { if (filters['today'] == false) { filters['yesterday'] = false; filters['lastWeek'] = false; filters['lastMonth'] = false; filters['customRange'] = false; filters['today'] = true

我正在尝试测试此函数:

  setToday(Map filters) {
    if (filters['today'] == false) {
      filters['yesterday'] = false;
      filters['lastWeek'] = false;
      filters['lastMonth'] = false;
      filters['customRange'] = false;
      filters['today'] =  true;
    } else
      filters['today'] = false;
  }
这就是测试:

     test("", (){
        Map<String, bool> filters = {
          "today" : false,
          "yesterday" : false,
          "lastWeek" : false,
          "lastMonth" : false,
          "customRange" : false,
        };

        expect(_kpiFilterViewController.setToday(filters), filters["today"] == true);
      });
测试(“,(){
映射过滤器={
“今天”:假,
“昨天”:假,
“上周”:错,
“上个月”:假,
“customRange”:false,
};
expect(_kpiFilterViewController.setToday(过滤器),过滤器[“today”]==true);
});
但结果是:

Expected: <true>
  Actual: <null>
预期:
实际:

我的错误是什么?

测试中的函数没有返回任何内容,因此调用

_kpiFilterViewController.setToday(filters)
expect中,断言将失败

test("filters[today] value should be true", () {
    //Arrange
    Map<String, bool> filters = {
      "today" : false,
      "yesterday" : false,
      "lastWeek" : false,
      "lastMonth" : false,
      "customRange" : false,
    };
    bool expected = true;

    //Act (call the method under test)
    _kpiFilterViewController.setToday(filters);

    //Assert (verify expected behavior)
    bool actual = filters["today"];
    expect(actual, expected);
});
test(“filters[today]值应为true”,(){
//安排
映射过滤器={
“今天”:假,
“昨天”:假,
“上周”:错,
“上个月”:假,
“customRange”:false,
};
布尔期望值=真;
//Act(调用测试中的方法)
_kpiFilterViewController.setToday(过滤器);
//断言(验证预期行为)
bool实际值=过滤器[“今天”];
期望(实际的,期望的);
});

参考资料

非常感谢!