我正在使用void Start(){
StartCoroutine(checkInternetConnection((isConnected)=>{
// handle connection status here
}));
}
crate,我想测试与时间相关的函数输出。
我想按时间time
计算时间;我怎么能这样做?
答案 0 :(得分:2)
我假设你的意思是你有这样的功能:
pub fn is_now_afternoon() -> bool {
let t = time::now();
t.tm_hour >= 12
}
你想测试它是否适用于特定时间。
我会以稍微不同的方式构建它并将时间花在:
// More generic helper function, which does all the real work
fn is_t_afternoon(t: &Tm) -> bool {
t.tm_hour >= 12
}
// Simple wrapper to use now.
pub fn is_now_afternoon() -> bool {
is_t_afternoon(&time::now())
}
#[test]
fn test_afternoon() {
assert!(is_t_afternoon(Tm{ tm_hour: 13, /* other fields */ }));
assert!(!is_t_afternoon(Tm{ tm_hour: 10, /* other fields */ }));
}
这个想法是你将完成所有工作的代码分离成单独的,更容易测试的函数,这些函数不依赖于“真实世界”环境。作为奖励,我经常会发现那些更通用的函数在以后的其他环境中有用。
另一种策略(我认为更难,更容易出错)是独立计算给出测试函数中当前时间的答案,并检查真实的一致。然而,这似乎可能导致间歇性测试,或者只是在测试中遇到与“真实”功能相同的错误。