Tag: rhino mocks

如何模拟返回列表对象的属性 – 在rhino mock中

Interface IView { List Names {get; set;} } public class Presenter { public List GetNames(IView view) { return view.Names; } } var mockView = MockRepository.GenerateMock(); var presenter = new Presenter(); var names = new List {“Test”, “Test1”}; mockView.Expect(v => v.Names).Return(names); Assert.AreEqual(names, presenter.GetNames(mockView)) // Here presenter returns null which is incorrect behaviour in my case; 当我使用上面的代码返回名称的模拟列表时,它与expecatation不匹配然后返回null并失败 […]

Rhino – 模拟类而不是覆盖虚方法

如果我正在嘲笑一个类,如下所示,有什么方法可以让模拟不重写虚方法? 我知道我可以简单地删除虚拟修饰符,但实际上我想在以后删除此方法的行为。 换句话说,除了删除虚拟修饰符之外,我怎样才能通过此测试: namespace Sandbox { public class classToMock { public int IntProperty { get; set; } public virtual void DoIt() { IntProperty = 1; } } public class Foo { static void Main(string[] args) { classToMock c = MockRepository.GenerateMock(); c.DoIt(); Assert.AreEqual(1, c.IntProperty); Console.WriteLine(“Pass”); } } }

unit testing接口存储库的目的是什么

我是一个unit testingICustomerRepository接口,用于检索Customer类型的对象。 作为一个unit testing我通过以这种方式测试ICustomerRepository获得了什么价值? 在什么条件下,下面的测试会失败? 对于这种性质的测试,建议我做的测试应该失败吗? 即当我知道我只在存储库中放置了5时,查找id 4 我可能遗漏了一些明显的东西,但似乎实现ICustomerRepository的类的集成测试将更有价值。 [TestClass] public class CustomerTests : TestClassBase { private Customer SetUpCustomerForRepository() { return new Customer() { CustId = 5, DifId = “55”, CustLookupName = “The Dude”, LoginList = new[] { new Login { LoginCustId = 5, LoginName = “tdude” }, new Login { LoginCustId = 5, LoginName […]

在没有公共建设者的情况下模拟密封课程?

我正在测试的特定类依赖于HttpSessionState对象。 HttpSessionState类没有公共构造函数。 被测试的类仅将此对象用作NameValue存储。 该类在ASMX Web服务中用于返回特定方法的信息。 我正在考虑在HttpSessionState类周围创建一个Facade,我可以在测试中提供Dictionary 而不是Session对象。 这是一个好主意还是标准做法?

如何使用NUnit和Rhino Mocks模拟HttpContext.Current.Items

我正在使用NUnit和RhinoMocks进行(WebApi)项目的unit testing。 我正在尝试编写一个测试方法,它应该向HttpContext.Current.Items添加一个项目。 public override void OnActionExecuting(HttpActionContext actionContext) { HttpContext.Current.Items.Add(“RequestGUID”, Guid.NewGuid()); base.OnActionExecuting(actionContext); } 我不知道在测试方法中运行时如何使HttpContext.Current.Items可用于该方法。 我怎样才能做到这一点? 另外,如何检查项目是否已添加(可以/应该使用哪种断言)

使用UnitofWork Pattern的Rhino Mock Entity Framework无法正常工作

这是我第一次尝试这样的事情,所以希望这很简单。 我创建了一个WCF服务,它使用Entity Framework来访问数据库。 我已经实现了UnitOfWork接口,因此我的服务可以使用EF,同时仍然可以测试。 这是我的服务: public class ProjectService : IProjectService { private IUnitOfWork db = null; public ProjectService(IUnitOfWork unitofwork) { db = unitofwork; } public int RegisterSite(int CPUID) { if (db.Servers.Count(x => x.CPUID == CPUID) > 0) { // do something } return 0; } } 这是我的UnitOfWork界面: public interface IUnitOfWork { IObjectSet Clients { get; […]

犀牛嘲笑部分模拟

我试图从一些现有的类测试逻辑。 由于它们非常复杂并且在生产中,因此不可能重新考虑目前的类别。 我想要做的是创建一个模拟对象并测试一个内部调用另一个非常难以模拟的方法的方法。 所以我想为次要方法调用设置一个行为。 但是当我设置方法的行为时,方法的代码被调用并失败。 我是否遗漏了某些东西,或者这是不可能在没有重新分类的情况下进行测试? 我已经尝试了所有不同的模拟类型(Strick,Stub,Dynamic,Partial等),但是当我尝试设置行为时,它们都会调用该方法。 using System; using MbUnit.Framework; using Rhino.Mocks; namespace MMBusinessObjects.Tests { [TestFixture] public class PartialMockExampleFixture { [Test] public void Simple_Partial_Mock_Test() { const string param = “anything”; //setup mocks MockRepository mocks = new MockRepository(); var mockTestClass = mocks.StrictMock(); //record beahviour *** actualy call into the real method stub *** Expect.Call(mockTestClass.MethodToMock(param)).Return(true); //never […]

与Rhino Mocks一起使用只读属性

我有一个私有集属性的类,我想用犀牛模拟存根。 但是,当我尝试这样做时,它给了我一个编译时错误,说我无法设置只读属性。 我是新手使用Rhino Mocks所以我必须在这里遗漏一些东西…… public Interface IFoo { int Quantity { get; } } [TestMethod] public void SomeTest() { IFoo foo = MockRepository.GenerateStub(); foo.Quantity = 5; //Asserts and such }

unit testing自定义ConfigurationElement和ConfigurationElementCollection

我创建了一个自定义ConfigurationElement和ConfigurationSection ,以便在启动时更轻松地设置一系列应用程序参数。 但是,我真的很想对这个逻辑进行unit testing。 ServiceConnection public class ServiceConnection : ConfigurationElement { [ConfigurationProperty(“locationNumber”, IsRequired = true)] public string LocationNumber { get { return (string) base[“locationNumber”]; } set { base[“locationNumber”] = value; } } [ConfigurationProperty(“hostName”, IsRequired = true)] public string HostName { get { return (string) base[“hostName”]; } set { base[“hostName”] = value; } } [ConfigurationProperty(“port”, IsRequired […]

模拟方法的结果

我试图找到一种方法来伪造从另一个方法中调用的方法的结果。 我有一个“LoadData”方法,它调用一个单独的帮助器来获取一些数据,然后它将对其进行转换(我对测试转换后的结果感兴趣)。 所以我有这样的代码: public class MyClass(){ public void LoadData(){ SomeProperty = Helper.GetSomeData(); } public object SomeProperty {get;set;} } 我想从Helper.GetSomeData()方法得到一个已知的结果。 我可以使用一个模拟框架(我对Rhino Mocks的经验相当有限,但对任何事情都很开放)来强制实现预期的结果吗? 如果是这样,怎么样? *编辑 – 是的,如我所料,我无法实现我想要的黑客攻击,我将不得不找到一种更好的方法来设置数据。