【问题标题】:Testing Functions for ASP.net (The Object Test Bench)ASP.net 的测试功能(对象测试台)
【发布时间】:2008-10-30 17:05:42
【问题描述】:

编辑

我注意到对象测试台是我正在寻找的一个很好的例子,但它似乎不适用于 ASP.net。我总是收到无法创建实例的错误。


有没有一种方法可以在 ASP.net 中测试您的功能,而无需创建网页并单击按钮。例如,如果我创建一个返回 JSON 结果的控制器,我最终必须创建一个网页,创建一些 javascript 来调用该方法,启动网站,然后单击按钮。

真正棒的是只需在 立即窗口 中输入命令的名称,然后在此时提供参数以查看它们的行为,但我在那里所做的所有努力似乎都有收到类似 在运行模式下无法评估表达式的消息。 或其他任何消息(我认为交互模式还有另一条消息)。

是否有任何技巧可以只运行一个方法并查看结果而无需创建任何 UI 来进行调用?

【问题讨论】:

    标签: .net asp.net testing


    【解决方案1】:

    将所有非演示代码(不包括序列化为 JSON,即,将序列化之前的所有代码)放入类库中,并直接从单元测试链接到 DLL。

    此外,要在调试器中评估任何表达式,您必须处于中断模式(点击断点或按下停止按钮,该按钮上有一个停止方块)。 运行模式通常意味着调试器没有暂停执行,因此堆栈指针不断地上下移动并改变范围。

    【讨论】:

    • 如果您使用 HttpContext,如果您在网站之外对其进行测试,您的代码将无法正常工作。我尝试在辅助项目(如控制台应用程序)中包含最终编译的 DLL,但也没有取得太大成功。
    • 重构您的代码,使其不依赖于 HttpContext。从上下文中需要的任何内容,自己提取并传递。您还可以使用 .NET 3.5 SP1 中的 HttpContextBase:msdn.microsoft.com/en-us/library/…
    【解决方案2】:

    曾经有一个项目调用NUnitASP 现在已经死了。但最后一个版本可能会在某些方面对您有所帮助。

    您的下一个选择是使用 Visual Studio 中的单元测试功能。有许多功能只能在更昂贵的“Visual Studio Team Suite 测试版”中使用,现在是“Visual Studio Professional”的一部分。

    但是,如果您财力雄厚,并且该问题对您来说足够值得,那么“Visual Studio Team Suite 测试版 2008”可能是您现在可以做的最好的事情。

    观看这些视频以了解一些想法http://www.asp.net/learn/vsts-videos/

    【讨论】:

      猜你喜欢
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      相关资源
      最近更新 更多