5

.NET を拡張しようとしていますTestClass。次の抽象クラスを拡張する必要があることがわかりました:TestClassExtensionAttributeTestExtensionExecution. TestExtensionExecutionも実装する必要がありますITestMethodInvoker。私は次のことを行いましたが、テストメソッドを実行すると、ブレークポイントのいずれにもヒットしません (テストでも拡張でも)。つまり、テストクラスは拡張に到達せず、以前の時点で明らかに失敗します。誰かが私が欠けているものや、を拡張する方法の実例を教えてもらえます TestClassか?

拡大:

class CoreTestClass : TestClassExtensionAttribute
{
    public override Uri ExtensionId
    {
        get { throw new NotImplementedException(); }
    }

    public override TestExtensionExecution GetExecution()
    {
        return new TestCore();
    }
}

class TestCore: TestExtensionExecution
{
    public override ITestMethodInvoker CreateTestMethodInvoker(TestMethodInvokerContext context)
    {
        return new AnalysisTestMethodInvoker();
    }

    public override void Dispose()
    {

    }

    public override void Initialize(TestExecution execution)
    {
        execution.OnTestStopping += execution_OnTestStopping;
    }

    void execution_OnTestStopping(object sender, OnTestStoppingEventArgs e)
    {
        throw new NotImplementedException();
    }
}

class AnalysisTestMethodInvoker : ITestMethodInvoker
{
    public TestMethodInvokerResult Invoke(params object[] parameters)
    {
        throw new NotImplementedException();
    }
}

テスト:

[CoreTestClass]
public class HomeControllerTest
{
    [TestMethod]
    public void Index()
    {
        // Arrange
        HomeController controller = new HomeController();

        // Act
        ViewResult result = controller.Index() as ViewResult;

        // Assert
        Assert.AreEqual("Modify this template to jump-start your ASP.NET MVC application.", result.ViewBag.Message);
    }
}
4

1 に答える 1