C# Stryker 突变框架

标签 c# unit-testing xunit mutation-testing

我是测试和编写单元测试的新手。我发现了这个名为 Stryker 的突变框架。 我喜欢它,因为我正在用它编写更好的测试用例,这有助于我覆盖所有用例。

在一些测试用例突变期间,我遇到了相等突变或字符串突变。我对这些是什么感到困惑?

示例

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();
}

这些是什么以及为什么它给我?有什么意义吗?

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

最佳答案

我很高兴突变测试可以帮助您学习单元测试,这就是我帮助构建 Stryker 的原因之一。要回答您针对此特定案例的问题:

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();
}

我们变异<进入<=>看看您是否为以下边缘情况编写了测试 文件.长度 == 9 文件.长度== 10

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

如果您对 Stryker 有任何其他疑问,请查看文档或查看这篇精彩的博客文章:https://medium.com/swlh/mutation-tests-in-net-via-stryker-9fd9e8e4bcde

如果您认为文档不充分,请提交问题,我们可以改进!

关于C# Stryker 突变框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60925109/

相关文章:

c# - 为什么 javascript 警报未显示在 UpdatePanel 内

c# - 一个进程中加载​​的最大应用域数

java - Eclipse JUnit 5 支持

.net - 如何在 NSubstitute 中使用私有(private) setter 模拟对象的索引器?

c# - 最快的 Sprite 设置(2D 和 UI)

c# - 如何使用按钮单击在特定文本框中输入文本

javascript - 如何对 DOM 操作进行单元测试(使用 jasmine)

entity-framework - 代码中是否有可以代替 fixture.Inject() 的 Autofixture 属性?

c# - 测试自定义工厂中间件

c# - Xunit 多个 IClassFixtures