我们可以在.aspx.cs页面中编写单元测试方法吗?

Pra*_*ane 6 c# asp.net unit-testing

我们可以在.aspx.cs页面中编写测试方法吗?如果是,那怎么样?我需要为Page_Load方法中的代码编写测试方法.请建议是否有任何解决方案.

ole*_*sii 5

也许你可以,但是如果你把Page_Load方法的逻辑提取到一个模型类中,然后单独测试它会更清晰。

为什么?

  • 在其他页面重用该方法的逻辑
  • 更好地分离模型和展示
  • 更简洁的代码,更容易测试

样本:

// Home.aspx.cs
Page_Load()
{
    //Lots of code here
}


// or else Home.aspx.cs
Page_Load()
{
    Foo f = new Foo();
    var result = f.DoThings();
}

//Unit test
Page_Load_FooDoesThings()
{
    //Arrange
    Foo f = new Foo();
    var expected = ...;
    
    //Act
    var actual = f.DoThings();
    
    //Assert
    Assert.AreEqual(expected, actual)
}
Run Code Online (Sandbox Code Playgroud)