美好的一天,我正在尝试对以下在 Cloud Firestore 中创建文档的函数执行一些单元测试。我在我的应用程序中使用了一个函数,它创建了一个文档,但我想编写一个 test.dart 文件,该文件对以下函数执行单元测试,甚至在控制台上打印一些输出以进行验证。
我认为我没有以正确的方式编写我的 Test.dart 。我得到一个错误。
文件 createdatabase.dart 中的函数
Future<dynamic> createDoc(dataMap,collection) async {
final TransactionHandler createTransaction = (Transaction tx) async {
final DocumentSnapshot ds = await tx.get(db.collection(collection).document());
final Map<String, dynamic> result = {};
result.addAll(dataMap);
result['id'] = ds.documentID;
await tx.set(ds.reference, result);
return result;
};
测试.dart
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:test/test.dart';
import '../lib/service/createfirebase.dart';
void main() {
CreateFirebase cf = new CreateFirebase();
//test
test('Creating doc on firestore ', () async{
Object dataObj ={'name':'Dev','title':'Dev'};
var create = await cf.createDoc(dataObj, 'crude');
expect(true,create);
print('The doc details are');
print(dataObj);
});
}
运行此测试后的错误是 MissingPluginException(No implementation found for method Firestore#runTransaction on channel plugins.flutter.io/cloud_firestore)
但我不明白为什么因为我拥有所有依赖项,如果我在另一个类中调用该函数,则会创建文档。但是在这个测试中调用会出现上述错误。我想我没有以正确的方式做这件事。
我可以查看的任何贡献或任何参考资料都可以帮助测试此类功能吗?