我在 VS 2012 C++/CX 中有以下“Windows Store/Metro Style”测试方法
这个成功了,还行
TEST_METHOD(TestMethod)
{
bool passed = false;
concurrency::event finished;
finished.reset();
auto testTask = concurrency::create_task( [&finished, &passed]()
{
passed = true;
finished.set();
});
finished.wait(100000);
Assert::IsTrue(passed);
}
这个失败了,这也没关系:
TEST_METHOD(TestMethod)
{
bool passed = true;
concurrency::event finished;
finished.reset();
auto testTask = concurrency::create_task( [&finished, &passed]()
{
passed = false;
finished.set();
});
finished.wait(100000);
Assert::IsTrue(passed);
}
但由于某种原因,这个测试并没有失败:
TEST_METHOD(FailedTest)
{
concurrency::event finished;
finished.reset();
auto testTask = concurrency::create_task( [&finished]()
{
Assert::IsTrue(false);
finished.set();
});
finished.wait(100000);
}
难道我做错了什么?
作为旁注,一种可能的解决方法是将我的所有测试结果放入变量中并在之后“测试”它们finished.wait(100000);
,但我仍然想知道我正在做的事情是否真的有问题。