我测试了一些配置不同的硬件产品。我有一个测试方法,它遍历所有产品的所有测试用例。由于某些产品不支持功能,因此不应对某些情况进行测试。
使测试方法更具动态性的最佳方法是什么?我正在考虑使用我要定义的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>
答案 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的解决方案。