unit-testing - flutter :测试

标签 unit-testing testing dart flutter

我正在尝试测试这个功能

  UserApi createUserApi(String url, String username, String password) {
    UserApi userApi = new UserApi(base: route(url), serializers: repo);
    userApi.base.basicAuth('$username', '$password');
    return userApi;
  }

基本上,测试是将此函数的结果与它的“手动组合”进行比较,期望得到相同的结果。但事实并非如此:

  String username = "asd";
  String password = "asd";
  UserApi userApiTest = new UserApi(base: route("asd"), serializers: repo);
  userApiTest.base.basicAuth('$username', '$password');
  test("UserApi creation", () {
    UserApi userApi = _presenter.createUserApi("asd", "asd", "asd");
    expect(userApi, userApiTest);
  }); 

结果总是:

Expected: <Instance of 'UserApi'>
  Actual: <Instance of 'UserApi'>

为什么不同?在调试中,每个属性都是相同的。

最佳答案

您有两个不同的 UserApi 实例。它们具有相同的属性值并不能使它们相等。

您需要实现 hashCodeoperator==。 默认情况下,只有比较对同一对象实例的引用才被认为是相等的(因为它们是相同的)

另见

关于unit-testing - flutter :测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52602935/

相关文章:

c# - 测试因 ShimNotSupportedException 而失败

flutter - 在 ListView 中显示复选框

flutter - 类没有实例方法 `call`

eclipse - 是否有一种无问题的方法可以在集成良好的 Eclipse 中运行 Scala 2.7.7 单元测试?

c# - sql 查询 c# 的单元测试

ruby-on-rails - `method_missing' : `build` is not available on an example group (e. 克。一个 `describe` 或 `context` block )

testing - TestCafe:跨不同浏览器的并发测试问题

XDocument.Load() 和 XDocument.Save() 的测试方法

flutter - 使用列表的值构成另一个类

java - 测试应用程序生命周期、销毁和创建