我有一个flutter插件,它使用平台通道做一些本地工作.
如何为需要此插件的应用程序正确编写测试?
单位测试仅适用于纯飞镖功能.我不相信Widget测试能够测试使用平台通道到本机的东西.因此,离开集成测试.
据我所知,集成测试将启动您的主应用程序,您可以围绕您的应用程序控制它并测试.
对于我的情况,我想测试使用插件的代码(使用平台通道进行原生内容).
同样重要的是从平台通道返回的值,因此使用真实平台通道而不是模拟通道调用本机端是很重要的.
那可能吗?我可以告诉集成测试人员打开我的应用程序的虚拟版本,有点像集成的小部件测试人员吗?
我有一个这样的数组:
[{
"number": "4",
"fileName": "fileXX",
"rating": {
"average": 6.4
}
}, {
"number": "3",
"fileName": "fileXX",
"rating": {
"average": 5.4
}
}, {
"number": "4",
"fileName": "fileXX",
"rating": {
"average": 5.4
}
}]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下条件创建一个新数组:
array.rating.average每个数字 ( array.number) 的最高评分( )输出应该是:
[{
"number": "4",
"fileName": "fileXX",
"rating": {
"average": 6.4
}
}, {
"number": "3",
"fileName": "fileXX",
"rating": {
"average": 5.4
}
}
}]
Run Code Online (Sandbox Code Playgroud)
我刚刚设法按最高评分排序:
array.sort(function(a , b) {
return a.rating.average - b.rating.average;
});
array.reverse();
Run Code Online (Sandbox Code Playgroud)
但是,现在,我只想要每个副本一个对象array.number …
我正在尝试返回 aVec<&str>但在转换u64到&strwhile 循环内部时遇到了问题:
fn latest_ids<'a>(current_id: u64, latest_id: u64) -> Vec<&'a str> {
let mut ids: Vec<&str> = vec![];
let mut start = current_id;
while !(start >= latest_id) {
start += 1;
ids.push(start.to_string().as_str());
}
ids
}
Run Code Online (Sandbox Code Playgroud)
无法返回引用临时值的值
如果我只返回一个,Vec<String>那么它工作正常。
fn latest_ids<'a>(current_id: u64, latest_id: u64) -> Vec<String> {
let mut ids: Vec<String> = vec![];
let mut start = current_id;
while !(start >= latest_id) {
start += 1;
ids.push(start.to_string());
}
ids
}
Run Code Online (Sandbox Code Playgroud)
在此之后调用的下一个函数需要一个&str类型参数,所以我应该返回 a …
如何有效地将字符串中的键值对提取到HashMapwhen
key后面总是跟:然后是值value以 a 结尾,,后跟另一个key(有时是空格然后是key)value 可以包含 , :整个value包括任何keykeys不固定key名被称为对于这些键值对
key1:value1, key2:this is, some value2, key3:anothe:r val,ue,
Run Code Online (Sandbox Code Playgroud)
它应该产生这个HashMap:
"key1", "value1"
"key2", "this is, some value2"
"key3", "anothe:r val,ue"
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下代码,但仅将 a,作为分隔符是不好的,因为该值可以始终包含逗号。
"key1:value1, key2:this is, some value2, key3:anothe:r val,ue,"
.split(",")
.map(|kv| kv.splitn(2, ":").collect::<Vec<&str>>())
.filter(|vec| vec.len() == 2)
.map(|vec| (vec[0].trim().into(), vec[1].trim().into()))
.collect()
Run Code Online (Sandbox Code Playgroud)
我的想法是提供一个键列表: ["key1", "key2", "key3"] …
我正在尝试运行for循环来创建新的javascript对象并添加到现有的javascript对象而不替换.
例如,我试图创建它作为输出,而不是每次都覆盖组[i](并且只添加数字[i]数据):
{
"group1": {
"number1": "data",
"number2": "data",
"number3": "data"
},
"group2": {
"number1": "data",
"number2": "data"
}
}
Run Code Online (Sandbox Code Playgroud)
我的循环看起来像这样:
var array = [{
"groupName": "group1",
"number": "number1",
"data": "data"
}, {
"groupName": "group1",
"number": "number2",
"data": "data"
}, {
"groupName": "group1",
"number": "number3",
"data": "data"
}, {
"groupName": "group2",
"number": "number1",
"data": "data"
}, {
"groupName": "group2",
"number": "number2",
"data": "data"
}]
var groupLinks = {};
for(i = 0; i < array.length; i++) {
groupLinks[array[i].groupName] = {
[array[i].number]: …Run Code Online (Sandbox Code Playgroud) 这就是我现在所拥有的:
Command::new("/path/to/application")
.args("-param")
.spawn()
Run Code Online (Sandbox Code Playgroud)
看起来 Rust 用于CreateProcessW运行 Windows 进程,它允许创建标志。也许有一个标志可以满足我的需要?
id我想创建一个包含结构中所有匹配字段的向量,处理该新向量,然后重复该过程。基本上将具有匹配字段的结构分组在一起id。
有没有办法不使用不稳定功能来做到这一点drain_filter?
#![feature(drain_filter)]
#[derive(Debug)]
struct Person {
id: u32,
}
fn main() {
let mut people = vec![];
for p in 0..10 {
people.push(Person { id: p });
}
while !people.is_empty() {
let first_person_id = people.first().unwrap().id;
let drained: Vec<Person> = people.drain_filter(|p| p.id == first_person_id).collect();
println!("{:#?}", drained);
}
}
Run Code Online (Sandbox Code Playgroud)
我试图匹配 INI 文件的整个部分,但每个部分下的值都是非标准 INI,现在它直到下一部分才匹配。
这是我到目前为止所拥有的: ^\[GROUP2]([^[]+)
匹配对象:
[GROUP1]
;This is something I don't want
COMMAND(value:test)
COMMAND(value:[type="submit"])
COMMAND(value:test)
COMMAND(value:test)
[GROUP2]
;This is something I don't want
COMMAND(value:test)
COMMAND(value:[type="submit"])
COMMAND(value:test)
COMMAND(value:test)
Run Code Online (Sandbox Code Playgroud)
我想以更新的所有行RESULTSET从SELECT一个单一的UPDATE查询.
这是我到目前为止提出的:
SELECT id_queue, status FROM table WHERE status IN (0,2) ORDER BY status, id_queue ASC FOR UPDATE;
UPDATE table SET status = 97 WHERE id_queue= " + id_combined + ";
Run Code Online (Sandbox Code Playgroud)
所以,我想我需要把所有的id_queueIDS,把它们放在一起像1,2,3,4,5,6,7,8成id_combined.
知道JAVA中最好的方法吗?
注意:我不只是尝试更新所有状态0和2到97,我想在其他地方使用选择结果集.