我应该如何为测试框架设置测试?

时间:2017-07-02 21:29:18

标签: c# testing tdd mstest

我目前正在整合一个相对轻量级的框架,以帮助指定预期的代码覆盖率,并保证满足该覆盖范围(或明确说明不需要)。

但是,在自动实现测试应该失败时测试框架有点棘手,因为通常情况下,你希望通过测试是件好事而测试失败是件坏事。

一个例子是:

public interface IDesigned {
    void DoFoo();
}

[ClassTestRequirements(Targets.Methods, "IsNotImplemented")]
public interface ITestsOfDesigned : IDesigned
{
}

public class Foo : IDesigned 
{
}

[TestClass]
[AdoptsTestRequirements(typeof(ITestsOfDesigned), typeof(IDesigned))]
public class Tester : ProvidesCoverageFor<Foo>
{
   /* 
    *  Validation that Tester does what it's supposed to (it currently 
    *  doesn't) is set up in the base class.
    */
}

ProvideCoverage是一个抽象基类,它包含一个测试方法,该方法使用上面的测试方法验证测试人员在其中使用[Covers(nameof(IDesigned.DoFo), "IsNotImplemented")]修饰的方法,该方法执行任何操作 - 未检查。还有一种机制可以设置测试测试人员来检查用IProvidesCoverage<>修饰的所有类实际验证他们的测试。

显然,在上面,方案应该ProvidesCoverage<>.ValidateTests()失败。还有什么感觉更像是想要执行的有效测试。但理想情况下,我想配置一个场景,其中这些测试不一定被视为实际测试(尽管用TestClass / TestMethod等装饰)但是外部(实际)测试运行它们并期望失败。

我怎么能得到它?如果我不能, 我将如何我正在测试这样的项目,因为这样做的目的是导致某些测试失败,故障有时是合法的传递。

0 个答案:

没有答案