gpt4 book ai didi

.net - 记录对象方法调用以生成自动化测试

转载 作者:行者123 更新时间:2023-11-28 20:12:44 25 4
gpt4 key购买 nike

我有一个带有大接口(interface)的对象,我想记录它在用户 session 期间完成的所有方法调用。理想情况下,此调用序列将作为源代码提供:

myobj.MethodA(42);
myobj.MethodB("spam", false);
...

然后我会将此代码转换为测试用例,以进行一种自动冒烟/负载测试。

WCF Load Test可以为 WCF 服务执行此操作,而 CodedUI 测试记录器可以为 UI 执行此操作。我对 POCO 类(class)有哪些选择?我可以编辑应用程序代码并用一些记录/转发代理替换有问题的对象。

最佳答案

你可以想象用 Rhino.Mocks 做到这一点。

var code_builder = new StringBuilder();

var myobj = MockRepository.GenerateStub<IMyObj>();

myobj.Stub(x => x.MethodA(Arg<int>.Is.Anything))
.WhenCalled(x => code_builder.AppendLine(
string.Format("myobj.MethodA({0});", x.Arguments[0]));

myobj.Stub(x => x.MethodB(Arg<string>.Is.Anything, Arg<bool>.Is.Anything))
.WhenCalled(x => code_builder.AppendLine(
string.Format("myobj.MethodB({0}, {1});", x.Arguments[0], x.Arguments[1]));

一旦您记录了所有值,您就在 StringBuilder 中获得了所有调用,您可以随心所欲地使用它。

创建一个新的接口(interface)实现,在每个方法中以类似的方式构建代码,实际上可能工作更少。您可能需要实现才能真正运行,以便用户通过 session ,在这种情况下,您可以创建一个类,该类派生自或装饰您的接口(interface)实现,并添加此代码-在将调用转接到“正常”对象或从“正常”对象转接调用时构建功能。

关于.net - 记录对象方法调用以生成自动化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4684558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com