【发布时间】:2018-05-18 02:38:13
【问题描述】:
我在查看文档:https://pub.dartlang.org/packages/mockito,并试图进一步了解它。似乎在示例中,函数存根正在接受字符串,但对于我将如何实现我的模拟服务有点困惑。
我很好奇我会怎么做。我拥有的服务非常简单直接。
class Group{}
class GroupService {}
class MockGroupService extends Mock implements GroupService {}
final mockProviders = [new Provider(MockGroupService, useExisting: GroupService];
所以你可以看到我正在使用 Angular dart。
我在我的测试文件中创建了一个示例组。
group("service tests", (){
MockGroupService _mock;
testBed.addProviders([mockProviders]);
setUp(() async {
fixture = await testBed.create();
_mock = new MockGroupService();
//This is where I was going to create some stubbs for the methods
when(_mock.add()).thenReturn((){
return null; //return the object.
});
//create additional when statements for edit, delete, etc.
});
});
所以我在想的是会有一个参数传递给 add (or 2).... 我将如何在 when 语句中正确编码,以及这 2 个参数如何反映在 then 语句中?
本质上,我想对一个复杂的类进行测试.. 并将其传递给 add。然后它会相应地处理它并返回它。
我是否将类似于以下内容的参数传递给:(使用伪代码)
when(_mock.add(argThat(hasType(Group)))).thenReturn((Group arg)=> arg);
或类似的东西? hasType 不是函数,所以我不能 100% 确定如何处理这个设计。理想情况下,我尝试在测试中创建组,然后相应地将其传递给添加函数。似乎这些示例显示的是字符串。
【问题讨论】:
标签: unit-testing mocking dart mockito angular-dart