繁体   English   中英

用Java捕获虚假单元测试

Catch Fake Unit Tests in Java

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我的测试没有回购声明,尽管jacoco提供了很好的覆盖范围。 除了更好的代码审查之外,还有没有其他方法可以检测到这种测试?

2 个回复

使用PMD。 对于没有任何声明的unitTests,它具有标准规则。

如果您的目的只是查找简单的错误测试,即那些缺少任何assert语句的测试,则PMD等检查程序可能会胜任。 您可能会得到一些误报,即对于那些实际测试目标只是为了确保SUT不会引发异常的测试(Peter Lawrey的评论中提到的一种情况)。

但是,在测试中还有许多问题并不容易找到:一个断言可能是错误的( assertTrue(isPrime(9)) ),或者,该断言可能只解决了相关方面的一部分(例如,处理有理数时,仅检查分子,而不检查分母。

为了检测这种质量问题,还存在一些方法,例如变异测试,可以在一定程度上有所帮助。 而且,在首先编写测试时:使用测试优先开发过程可确保测试至少失败一次。

但是,测试套件可能存在其他问题,这些问题与已执行的测试集无关,但与非功能质量标准有关:测试执行时间,测试套件的可维护性,测试情况下诊断输出的表达能力失败等

当您有兴趣检测这类问题时,我认为评论是不可避免的。

1 重新定义捕获单元测试

我正在测试大量软件,并且想使用Catch来完成此任务。 我正在使用“单一包含”版本1.9,将其集成到Visual Studio 2012更新4中并使用C ++ 04标准。 如下所示,我使用三个“ .cpp”文件。 他们每个人参考: 一个包含“抽象”宏的包含文件(例如#defi ...

4 如何伪造HttpContext进行单元测试?

我需要伪造HttpContext.Current.Application表,以便从我的单元测试中访问它。 我需要将我的数据存储在某个地方。 我认为我可以只传递NameValueCollectionBase实例但是因为我发现这个基类型没有索引器所以它看起来太复杂了。 那么伪装这部分H ...

5 如何在单元测试中伪造SqlDataAdapter,SqlConnection和SqlCommand

我试图找出如何在我创建的类上运行单元测试以在数据库上执行查询但我一直在试图找出如何伪造所有依赖项的圈子中运行。 我的类实现了IDisposable,如果打开则关闭SqlConnection。 用于选择数据的典型方法(我有几个重载)如下所示: 请注意,SqlCommand构造函数中的C ...

6 如何为单元测试创​​建虚假的Realm结果

但是,也许是重复的; 接受的答案没有回答我的问题: 如何伪造Realm结果进行测试 在对View Controller进行单元测试时,我想在模拟对象上返回假Realm'Results'对象。 ( 类似于在C#中使用Moq可以完成的操作 ) 是否可以创建包含我的测试数据的Realm ...

8 如何伪造单元测试的上次修改时间?

我有一个简单的实体,要求上一次修改的时间应在持久性上进行更新。 我需要实施一项工作,以查询早于特定时间(例如一天)的此类实体,修改其状态并持久化它们。 我在涵盖此类用例的单元测试中创建数据时遇到问题。 尽管我手动设置了lastModified时间,但无论设置值如何, @PrePersist都会 ...

10 单元测试Java脚本-带有QUnit的伪XRM

我有一个js函数,我想使用QUnit进行单元测试。 这是一个简单的函数,可在其中传递要从表单中隐藏的字段名称。 我也在这里使用一个Mocking框架:[link] https://github.com/ambek/XrmPage-Mock 我的Tests.js文件如下所示: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM