这是我的测试代码:
SizedBox(
width: MediaQuery.of(context).size.width // This will make your list fill the screen horizontally
height: 100.0 // you can edit it as you desire but it should be small to make the effect of scroll-able row
child: listview.builder(
scrollDirection: Axis.horizontal, //This will make your list scroll on the horizontal axis
itemCount: 10.0,
itemBuilder: (BuildContext content, int index) {
// Your itemBuilder code here
}
),
),
但上图显示未测试静态常数代码。为什么?
版本信息:
test('should set correct constant', (){
expect(Stores.CurrentContext, 'currentContext');
});
答案 0 :(得分:0)
覆盖工具注册正在运行的代码访问了哪些代码指令。
将其视为由程序计数器寄存器访问的“代码段”的存储地址的记录 处理器逐步执行程序功能的过程。
通过数据存储器访问可访问静态变量,不涉及任何代码指令: 如果变量是常数,则应位于堆栈,堆或数据节中。
考虑以下代码:
import 'package:rxdart/rxdart.dart';
class Stores {
static const String Login = 'login';
static const String CurrentContext = 'currentContext';
}
class Store {
final name;
static var eMap = Map();
Store._internal(this.name); // DA:13
factory Store(String name) { // DA:15
if (eMap.containsKey(name)) { // DA:16
return eMap[name]; // DA:17
} else {
final store = Store._internal(name); // DA:19
eMap[name] = store; // DA:20
return store;
}
}
}
,此代码运行:
test('should set correct constant', (){
Store('currentContext');
Store('currentContext');
expect(Stores.CurrentContext, 'currentContext');
});
如果查看icov的原始输出,您会发现静态变量的行数从未达到,这为上述模型赋予了含义:
SF:lib/stores.dart
DA:13,1
DA:15,1
DA:16,2
DA:17,2
DA:19,1
DA:20,2
LF:6
LH:6
视觉报告工具显示100%的覆盖率:
如果您的报表工具在静态变量上显示红线,则必须将其视为“假阳性”:继续生存或更改报表工具。