Unit testing Dart/Flatter Web:如何编写一个涵盖'kIsWeb==true'的测试?

Unit testing Dart/Flatter Web:如何编写一个涵盖'kIsWeb==true'的测试?,unit-testing,flutter,testing,dart,flutter-web,Unit Testing,Flutter,Testing,Dart,Flutter Web,我想运行一个单元测试,它涵盖两种可能的情况,web和非web部署。要测试的类的代码基本上如下所示: 类MyWidget扩展了无状态Widget{ @凌驾 小部件构建(构建上下文){ 如果(kIsWeb){ 返回文本(“我是网络”); }否则{ 返回文本(“我不是网络”); } } } kIsWeb是Dart提供的一个常量,用于确定应用程序是否编译为在web上运行 我当前的测试类实现只能测试非web路径。有没有办法为kIsWeb==true的情况创建一个测试?试着这样运行测试: 颤振试验平台铬合

我想运行一个单元测试,它涵盖两种可能的情况,web和非web部署。要测试的类的代码基本上如下所示:

类MyWidget扩展了无状态Widget{
@凌驾
小部件构建(构建上下文){
如果(kIsWeb){
返回文本(“我是网络”);
}否则{
返回文本(“我不是网络”);
}
}
}
kIsWeb
是Dart提供的一个常量,用于确定应用程序是否编译为在web上运行


我当前的测试类实现只能测试非web路径。有没有办法为
kIsWeb==true
的情况创建一个测试?

试着这样运行测试:

颤振试验平台铬合金

不幸的是,这种方法在某些平台上可能不起作用(适用于Windows 10)web颤振仍处于测试阶段


更多信息可用。

您还可以向小部件添加构造函数和属性,并使用
@visibleForTesting
对其进行装饰。类似于:

类MyWidget扩展了无状态Widget{
网络的最终目标;
MyWidget({@visibleForTesting this.isTestingForWeb=false});
@凌驾
小部件构建(构建上下文){
如果(kIsWeb | | istingforweb){
返回文本(“我是网络”);
}否则{
返回文本(“我不是网络”);
}
}
}

谢谢你,这实际上是有限的,因为我必须事先决定测试哪个平台,不能同时对所有平台运行测试。此外,不幸的是,
--platform chrome
选项不能与我最感兴趣的
--coverage
选项协同工作。看这个。