Tag: 模拟

正确使用

在我的网站中,已登录的用户可以更改其个人资料图片,此过程包括将上传的图像保存到网站根目录中的文件夹中。 当我测试它时,我收到一个错误,我应该使用权限授予对此特定文件夹的访问权限。 我无法控制控制面板,他说他确实向Images文件夹授予了对其他人的READ和WRITE权限。 再次测试之后,再次出现同样的错误,所以我编辑了web.config并包含: 现在一切似乎都很完美。 但是,我刚才在这做什么? 有安全隐患吗? 我是否允许每个人匿名访问我的网站?

Mock.Of VS Mock ()

我目前对如何模仿感到困惑。 我正在使用Moq。 为了模拟对象,我通常以这种方式编写 var mockIRepo = new Mock(); 但是,我需要为我的设置创建模拟对象。 Option1以这种方式模拟仅包含属性的对象是否更好? var object = Mock.Of() Option2或者这样 var object = new Mock() 我已经读过选项2有setupproperties这对我来说有点问题,因为我也可以在选项1中设置属性。 那有什么区别? 或者,还有更好的方法?

C#压力测试 – 模拟对给定共享资源的多次访问

如何在ac#unit test中模拟/压力测试大约100个访问给定共享资源(例如数据库)的用户?

使用静态类/方法依赖项测试类

所以我有一个看起来像这样的类: public class MyClassToTest() { MyStaticClass.DoSomethingThatIsBadForUnitTesting(); } 和一个看起来像这样的静态类: public static class MyStaticClass() { public static void DoSomethingThatIsBadForUnitTesting() { // Hit a database // call services // write to a file // Other things bad for unit testing } } (显然这是一个愚蠢的例子) 所以,我知道第二类在unit testing方面注定要失败,但有没有办法解开MyClassToTest类,以便我可以测试它(没有实例化MyStaticClass )。 基本上,我希望它忽略这个电话。 注意:遗憾的是这是一个Compact Framework项目,所以不能使用像Moles和Typemock Isolator这样的工具:(。

程序化按钮单击会抛出’System.StackOverflowException’exception

我在C#.Net中编写了一个WinForms程序,在密码表单中以编程方式单击按钮。 Form1加载并将Form2显示为对话框。 如果DialogResult是DialogResult.OK的其他任何东西,应用程序将关闭。 到目前为止,我有一个按钮单击事件,编码如下: if (txtpass.Text == “”) { MessageBox.Show(“You need to enter a password”, “Password”, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); txtpass.Focus(); } else { if (txtpass.Text == “1234”) { radButton1.DialogResult = DialogResult.OK; radButton1.PerformClick(); } else { MessageBox.Show(“Password Incorrect”, “Password”, MessageBoxButtons.OK, MessageBoxIcon.Error); txtpass.Text = “”; txtpass.Focus(); } } 我用radButton1.PerformClick(); ,但运行该程序给我以下消息: An unhandled exception of type ‘System.StackOverflowException’ occurred in […]

使用驱动程序在Windows登录屏幕中模拟输入

我正在编写一个开源的远程桌面工具,类似于VNC和TeamViewer。 我注意到TeamViewer继续在Switch Users或Workstation Locked屏幕上捕获屏幕 – 并允许远程用户输入密码并解锁工作站。 我想做同样的事情。 我读了: 更新:在Windows登录屏幕上与用户交互 https://stackoverflow.com/questions/9485530/capturing-image-during-windows-logon-invalid-password 将命令按钮添加到Windows登录屏幕 从Windows登录屏幕挂钩热键 https://stackoverflow.com/questions/7183241/launch-windows-on-screen-keyboard-at-logon-screen-on-win7 模拟Keypress的驱动程序 通过服务删除Windows登录屏幕 如何在Windows 7登录屏幕中捕获密钥? 在Windows XP中使用C#在登录屏幕上显示窗口 从这些post中,我收集了在隔离会话中模拟输入肯定不是对SendInput()的简单调用。 但是有可能使用驱动程序(我相信它特别是键盘filter驱动程序,但我不确定)? 如果是这样,我正在考虑在C#中编写一个服务(以便它在用户会话之外运行),它与拦截驱动程序交互以模拟按键。 回答:“为什么你不试试呢?”,对于我来说,没有一个用于拦截的.NET包装器来测试这样的服务,所以如果普遍的共识得出结论认为这是不可能的,那么我不想花时间编写.NET包装器。 我发现了一个名为Interception的键盘驱动程序(将来会发布这个驱动程序) 。 您可以在此处直接找到源(源只是围绕实际内核驱动程序的C通信API包装器) 。 我有另一个问题……我对哪些文件构成驱动程序感到困惑。 他用C编程的拦截DLL库编译成.DLL。 但是不是某些.sys扩展的驱动程序 – 如何将该拦截DLL编译成实际的驱动程序 – 然后你将如何安装它? 编辑: .NET包装器确实存在 。 当我按下’x’键时,我修改了示例控制台应用程序以键入我的整个密码,并且它成功运行 – 不仅在工作站锁定屏幕上,而且在Windows登录屏幕上。 所以它有效。 编辑: 这个键盘驱动程序的C#包装器库在这里 。

可视化编程语言控制

是否有基于.NET(WinForm或WPF)的控件允许简单的可视化编程(赋值,布尔表达式和数学表达式)? 像Microsoft VPL这样的东西,只能嵌入和支持。

用Moq对类进行部分嘲弄

我想使用Moq仅模拟以下类的GetValue方法: public class MyClass { public virtual void MyMethod() { int value = GetValue(); Console.WriteLine(“ORIGINAL MyMethod: ” + value); } internal virtual int GetValue() { Console.WriteLine(“ORIGINAL GetValue”); return 10; } } 我已经阅读了一下这应该如何与Moq一起使用。 我在网上找到的解决方案是使用CallBase属性,但这对我不起作用。 这是我的测试: [Test] public void TestMyClass() { var my = new Mock { CallBase = true }; my.Setup(mock => mock.GetValue()).Callback(() => Console.WriteLine(“MOCKED GetValue”)).Returns(999); […]

模拟一个使用Moq返回void的更新方法

在我的测试中,我将List定义为数据,其中包含一些记录。 我想设置一个moq的方法Update ,这个方法接收用户id和要更新的string 。 然后我获取IUser并更新属性LastName 我试过这个: namespace Tests.UnitTests { [TestClass] public class UsersTest { public IUsers MockUsersRepo; readonly Mock _mockUserRepo = new Mock(); private List _users = new List(); [TestInitialize()] public void MyTestInitialize() { _users = new List { new User { Id = 1, Firsname = “A”, Lastname = “AA”, IsValid = true }, […]

如何使用静态方法(UnitOfWork case)moq静态类?

我有这些课程: public static class UnitOfWorkSS { public static IUnitOfWork Begin() { return IoC.Resolve(); } } public class PostService { using (IUnitOfWork unitOfWork = UnitOfWorkSS.Begin()) { //don’t forget to sanitize html content htmlContent = _htmlSanitizer.Sanitize(htmlContent); IPost post = _factory.CreatePost(byUser, title, htmlContent); _postRepository.Add(post); unitOfWork.Commit(); } } 我如何模拟UnitOfWorkSS和unitOfWork类?