首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Stryker变异框架

C# Stryker变异框架
EN

Stack Overflow用户
提问于 2020-03-30 06:25:33
回答 2查看 771关注 0票数 1

我刚开始测试和编写单元测试。我发现了一个名为Stryker的变异框架。我喜欢它,因为我正在用它编写更好的测试用例,这有助于我涵盖所有用例。

在一些测试用例突变中,我遇到了相等突变或字符串突变。我搞不懂这些是什么?

示例

代码语言:javascript
复制
if (file.Length < 10) // Equality Mutation Here
{
throw new ArgumentException("The file name was too short", "file"); // String Mutation Here with the filename is too short
//throw new System.IO.FileNotFoundException();
}

这些是什么,为什么要给我?有什么意义吗?

我知道我的问题可能是初学者的水平。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-01 11:34:30

我很高兴变异测试可以帮助您学习单元测试,这也是我帮助构建Stryker的原因之一。就这一具体情况回答你的问题:

代码语言:javascript
复制
if (file.Length < 10) // Equality Mutation Here
{
throw new ArgumentException("The file name was too short", "file"); // String Mutation Here with the filename is too short
//throw new System.IO.FileNotFoundException();
}

我们将<突变为<=>,以查看是否为file.Length == 9 file.Length == 10的边缘情况编写了测试。

我们对字符串进行变异,以查看是否在测试中检查字符串的值。例如,您可以测试异常中的消息是否正确。

如果您还有任何关于Stryker的问题,请查看文档或查看以下伟大的博客文章:https://medium.com/swlh/mutation-tests-in-net-via-stryker-9fd9e8e4bcde

如果你认为文档不足,请提交一个问题,我们可以改进!

票数 2
EN

Stack Overflow用户

发布于 2020-03-31 07:44:13

你看过医生吗?https://github.com/stryker-mutator/stryker-handbook/blob/master/mutator-types.md

更具体而言:

  1. https://github.com/stryker-mutator/stryker-handbook/blob/master/mutator-types.md#equality-operator

当前比较操作符与许多可用的操作符之一之间的相等变异变化(>,<,>=,<=,==,!=)

  1. https://github.com/stryker-mutator/stryker-handbook/blob/master/mutator-types.md#string-literal

String基本上改变了一个字符串。如果您抛出带有message "Exception because X"的异常,它可能会将消息更改为不同的"Exception because Y""A completely different message"

IMHO字符串变体器通常是无用的。我从不断言字符串消息(我依赖异常类型),但是Equaly Mutator是存在的最经典、最简单和最有用的变送器之一。

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

https://stackoverflow.com/questions/60925109

复制
相关文章

相似问题

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