Tag: unit testing

模拟数据访问Layer Rhino mock

如何使用Rhino模拟模拟数据访问层我有以下类: public interface IDataAccess { int ExecuteNoneQuery(SqlConnection connection, string storedProcedureName, IEnumerable sqlParameters); } public class DataAccess : IDataAccess { public int ExecuteNoneQuery(SqlConnection connection, string storedProcedureName, IEnumerable sqlParameters) { using (SqlCommand command = connection.CreateCommand()) { // do some stuff return command.ExecuteNonQuery(); } } } public class DbOperation { private IDataAccess _access; public DbOperation(IDataAccess access) { _access […]

RhinoMocks模拟方法没有返回

我是嘲笑的新手。 我需要模拟方法(它没有返回值)。 我找不到任何模拟方法的例子。 我需要模拟ITempDa.Import方法。 var stub = MockRepository.GenerateStub(); stub.Stub(x => x.Import(param1)). ??? public void MockedImport() { // some processing here } ITempDa.Import应该被ITempDa.Import ,而应该调用一些内部方法“ MockedImport ”。

如何使用TestProject中的NSubstitute将值设置为类的局部变量?

我需要使用NSubstitute进行模拟,并且需要将类LoanCreateHandler局部变量command设置为使用它的参数Z来模拟数据。 我有以下代码: public class ClassA { public string Prop1 { get; set; } public string Prop2 { get; set; } … // Here I have some other properties } public class CreateLoanCommand { public string X { get; set; } public string Y { get; set; } public ClassA Z { get; set; } } […]

如何断言方法具有指定的属性

是否可以将解决方案概括为适用于任何类型? 有一个很好的解决方案来断言方法上是否存在指定的属性: public static MethodInfo MethodOf( Expression expression ) { MethodCallExpression body = (MethodCallExpression)expression.Body; return body.Method; } public static bool MethodHasAuthorizeAttribute( Expression expression ) { var method = MethodOf( expression ); const bool includeInherited = false; return method.GetCustomAttributes( typeof( AuthorizeAttribute ), includeInherited ).Any(); } 用法如下: var sut = new SystemUnderTest(); var y = MethodHasAuthorizeAttribute(() => […]

在entity framework6.1中模拟DbContext

我发现了一些例子(显然)显示了用EF 6模拟DbContext的明显工作示例,然而,它们似乎都不适合我,我不完全确定原因。 这是我设置模拟的unit testing代码; var mockData = new List { new User { Email = “my@email.com”, Id = 1 } }.AsQueryable(); var mockSet = new Mock<DbSet>(); mockSet.As<IQueryable>().Setup(m => m.Provider).Returns(mockData.Provider); mockSet.As<IQueryable>().Setup(m => m.Expression).Returns(mockData.Expression); mockSet.As<IQueryable>().Setup(m => m.ElementType).Returns(mockData.ElementType); mockSet.As<IQueryable>().Setup(m => m.GetEnumerator()).Returns(mockData.GetEnumerator()); var mockContext = new Mock(); mockContext.Setup(c => c.Users).Returns(mockSet.Object); 然后调用我正在测试的服务; var service = new UsersService(mockContext.Object); var user = […]

如何拆除集成测试

我想对我的项目进行一些集成测试。 现在我正在寻找一种机制,允许我在所有测试开始之前执行一些代码,并在所有测试结束后执行一些代码。 请注意,我可以为每个测试设置方法和拆除方法,但我需要为所有测试提供相同的function。 请注意,我使用的是Visual Studio,C#和NUnit。

是否有支持元标记的Npit替代wp7芒果unit testing运行器?

我正在使用来自http://www.jeff.wilcox.name/2011/06/updated-ut-mango-bits/的NUnit运行器,这很棒,但它不支持[异步]测试(由常规支持) silverlightunit testing)。 是否有任何跑步者在wp7芒果模拟器或设备上作为应用程序运行这些unit testing? 这与我之前的问题有关: 如何让HttpWebRequest尽可能同步? 谢谢! 猪

C#unit testingAPI 2调用

我有一个web api 2 web服务获取方法。 我正在使用HttpContext.Current.Request.UserHostAddress。 当直接调用我的控制器方法时,他没有填充unit testing,因此是null对象的错误。 所以我搜索了如何填写这个并找到以下有助于解决该问题: 为HttpRequestMessage添加IP地址 但是,这需要服务器名称来发送请求。 问题是,当测试运行时,VSExpress将需要为此API Web服务运行,而在运行测试时则不会。 最重要的是,即使它似乎它选择一个随机端口运行,所以我不能像在上面的链接中那样对地址进行硬编码。 鉴于上述问题,我如何测试我的api 2方法? 这是我在测试api方法时爆炸的线 string ip = HttpContext.Current.Request.UserHostAddress; [编辑]答案 所以每个人都知道这是代码中的解决方案 public class MyController : ApiController { private: HttpRequestBase httpRequest; public MyController() { httpRequest = new HttpRequestWrapper(HttpContext.Current.Request) } public MyController(HttpRequestBase http) { httpRequest = http; } public HttpResponseMessage Get() { string ip = httpRequest.UserHostAddress; […]

LibTiff.NET ReadDirectory仅在unit testing期间提供System.ObjectDisposedException

编辑:对于未来读者的FYI,这个问题已经修复,从BitMiracle的LibTiff.NET版本2.3.606.0开始。 我在我的C#库(在.NET 3.5 | x86中编译)中使用BitMiracle的LibTiff.NET(版本2.3.605.0及更低版本)并在调用ReadDirectory时不断收到此exception: System.ObjectDisposedException: Cannot write to a closed TextWriter 我意识到这似乎表明我在打电话之前已经处理了我的图像……但我没有特别这样做。 这是图书馆里的一个错误,还是我真的错过了什么? 这是我的代码: public static bool IsTiffBiTonal(String tiffFilePath) { VerifyFileExistence(tiffFilePath); using (Tiff tiff = Tiff.Open(tiffFilePath, “r”)) { do { if (tiff.GetField(TiffTag.BITSPERSAMPLE)[0].ToInt() == 1) { continue; } return false; } while (tiff.ReadDirectory()); //Error occurs here } return true; } 编辑:好的,经过一些进一步的测试后我得到了更多信息,这只是在我运行我的unit testing时才发生的! 不知道为什么会改变任何东西。

如何检查c#中的类是否只读?

我可以编写一个unit testing来确保我写的只读类(没有setter的类)将来仍然只读吗? 我不希望任何人在我的类中添加setter属性。 基本上,我如何检查一个类是否在C#中没有setter?