有没有办法用 Mockito 来模拟 Dart 中对象的一部分?

j.u*_*ruh 11 testing unit-testing mockito dart flutter

我目前正在尝试使用 Flutter 和 Dart 进行测试驱动开发。我有一个对象,它有两个方法,第一个方法执行 http 调用,第二个方法调用第一个方法。为了测试第一个函数,我模拟了该函数的依赖关系(即 http 调用)。

现在我想测试第二种方法,但我无法找到一种方法来仅模拟第一个函数,同时保持对象的其余部分完好无损。因此,我只能再次模拟第一个方法的依赖关系,这会导致整个函数被重新执行。这违背了单元测试的整个目的。

在模拟对象方面,似乎只有全有或全无的方法。我想知道如何处理某些对象依赖于同一对象上的方法的情况。使用FakeandMock不允许我调用原始方法。spy已弃用,并且将模拟函数分配给其中一个函数不起作用,因为 Dart 不允许我重新分配方法。

j.u*_*ruh 1

我找到了解决我的问题的方法。根据评论中提到的链接“使用真实对象进行测试优于使用模拟进行测试”。就我而言,我只是对我正在测试的主要对象进行了子类化,并替换了我没有测试的(第二)方法。这似乎可以解决问题。