存储有关测试方法的信息的最佳方法

时间:2017-01-18 19:23:32

标签: c# automated-tests

我测试了一些配置不同的硬件产品。我有一个测试方法,它遍历所有产品的所有测试用例。由于某些产品不支持功能,因此不应对某些情况进行测试。

使测试方法更具动态性的最佳方法是什么?我正在考虑使用我要定义的xml文件,应该为哪个产品执行哪些步骤。类似的东西:

<products>
<product>
    <id>1</id>
    <steps>
        <step id="1" desc="Description1" />
        <step id="2" desc="Description2" />
        <step id="3" desc="Description3" />
<product>
<product>
    <id>2</id>
    <steps>
        <step id="1" desc="Description1" />
        <step id="3" desc="Description3" />
<product>

2 个答案:

答案 0 :(得分:1)

查看Moq:您可以轻松设置一些可测试的方案,例如:

var mock = new Mock<ILoveThisFramework>();

// WOW! No record/replay weirdness?! :)
mock.Setup(framework => framework.DownloadExists("2.0.0.0"))
    .Returns(true);

// Hand mock.Object as a collaborator and exercise it, 
// like calling methods on it...
ILoveThisFramework lovable = mock.Object;
bool download = lovable.DownloadExists("2.0.0.0");

// Verify that the given method was indeed called with the expected value at most once
mock.Verify(framework => framework.DownloadExists("2.0.0.0"), Times.AtMostOnce());

我也喜欢将它与FluentAssertions一起使用,以获得断言的灵活性,你基本上可以用(几乎)自然语言阅读测试,例如:

string actual = "ABCDEFGHI";
actual.Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9);

这些例子来自他们各自的主页。

答案 1 :(得分:0)

XML可以,但你可以使用SQLite和自定义配置器,或者只使用SQLite编辑器。

因为如果你必须配置并对配置进行更改,一旦它变得越来越大,像SQL这样的解决方案将允许你更好地执行配置方式的更改。

如果您认为您的配置架构会不时变化,那么您可以探索其他noSQL选项,但它们并不像SQLite那样可移植。

我可以从我在产品中工作的经验告诉我哪些组件可以使用xml文件进行配置,一旦你成长并且你的xml文件变得更胖,它们就会成为一个问题。通过正则表达式在多个地方更新配置并不酷。我们现在期待迁移到类似SQLite的解决方案。