首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当测试失败时,ceylon.test.TestRunner失败

当测试失败时,ceylon.test.TestRunner失败
EN

Stack Overflow用户
提问于 2017-09-12 16:23:03
回答 1查看 32关注 0票数 1

每当测试函数(带有test注释的函数)包含失败的断言时,断言的效果与抛出异常时相同:将不再执行该函数中的代码行。因此,带有“test”注释的函数中的assert语句就像普通锡兰函数中的普通assert语句一样工作。这个与文档相反。,它声明普通的assert语句可以用于进行单元测试。

因此,运行下面的代码,我可以看到语句myTests1,而不是‘myTests2`2’:

代码语言:javascript
复制
import ceylon.test {
    test, TestRunner, createTestRunner
}

test
Anything myTests1 () {
    // assert something true!
    assert(40 + 2 == 42);
    print("myTests1");
    return null;
}

test
void myTests2 () {
    // assert something false!
    assert(2 + 2 == 54);
    print("myTests2");
}


"Run the module `tests`."
shared void run() {

    print("reached run function");

    TestRunner myTestRunner = createTestRunner(
        [`function myTests1`, `function myTests2`]);

    myTestRunner.run();
}

这是实际输出:

代码语言:javascript
复制
"C:\Program Files\Java\jdk1.8.0_121\bin\java" -Dceylon.system.repo=C:\Users\Jon\.IdeaIC2017.2\config\plugins\CeylonIDEA\classes\embeddedDist\repo "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.1\lib\idea_rt.jar=56393:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.1\bin" -Dfile.encoding=windows-1252 -classpath C:\Users\Jon\.IdeaIC2017.2\config\plugins\CeylonIDEA\classes\embeddedDist\lib\ceylon-bootstrap.jar com.redhat.ceylon.launcher.Bootstrap run --run run tests/1.0.0
reached run function
myTests1

Process finished with exit code 0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-12 18:41:53

这是按照预期工作的--用assertEquals‘替换那些assertEquals具有相同的效果,并打印相同的输出,因为两者都做了完全相同的事情:如果断言失败,抛出一个异常。

在这种情况下,我所知道的所有测试框架的行为都是相同的:断言失败导致异常,从而立即终止测试方法的执行。这是设计上的,因为您不知道一旦一个期望被违反,您的程序会做什么--方法的其余部分可能取决于这个断言是否正确,并且可能以不可预测和令人困惑的方式破坏。

如果你在写测试,比如

代码语言:javascript
复制
test
shared void testTwoThings() {
    assertEquals { expected = 42; actual = 40 + 2; };
    assertEquals { expected = 42; actual = 6 * 9; };
}

你应该写两个测试来代替。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46181359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档