小编Dou*_*ark的帖子

单元测试在Thread.Sleep时间之前完成

我的程序是一个简单的计时器(它是一个番茄钟计时器).我正在尝试将单元测试纳入我的个人项目中.

我在每个计时器类的run()方法上运行我的测试,并声明endTime - startTime在我设置计时器的时间的1秒内.

MyTimer.run()调用Thread.sleep(timerMilliseconds).

我的单元测试通过的时间比每个计时器设置的时间短.

这怎么可能?

例如.休息设置为5秒,单位测试通过<1ms

[TestMethod]
        public void testRun () {
            TimeSpan fiveSeconds = new TimeSpan(5000);
            Rest rest = new Rest(fiveSeconds, null);
            TimeSpan startTime = DateTime.Now.TimeOfDay;
            try {
                rest.run();
            }
            catch (Exception e) {
                Assert.Fail(e.ToString());
            }

            Assert.AreEqual(startTime.Add(fiveSeconds).TotalMilliseconds, DateTime.Now.TimeOfDay.TotalMilliseconds, 1000 , "Actual sleep time not expected");
        }


 public class Rest : Session {

        private TimeSpan timeSpan;

        public override void run () {
            Thread.Sleep(base.getTimer().Milliseconds); **//SOLVED: SHOULD READ base.getTimer().TotalMilliseconds**
        }

        public Rest (TimeSpan timeSpan, Cycle cycle) : base(timeSpan, cycle) { …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing visual-studio

3
推荐指数
1
解决办法
320
查看次数

标签 统计

.net ×1

c# ×1

unit-testing ×1

visual-studio ×1