我想测试OnException,OnActionExecuted一个MVC控制器的事件.
如果我像这样使用mock:
var httpContext = MockRepository.GenerateMock<HttpContextBase>();
var request = MockRepository.GenerateMock<HttpRequestBase>();
httpContext.Expect(c => c.Request).Return(request).Repeat.AtLeastOnce();
request.Expect(r => r.IsAuthenticated ).Return(true).Repeat.AtLeastOnce();
var controller = new MyController() ;
controller.ControllerContext = new ControllerContext(httpContext,
new RouteData(),
controller);
var result = controller.Execute() as ViewResult;
Run Code Online (Sandbox Code Playgroud)
...动作方法正在执行,但不会调用事件.
我正在研究一个eclipse插件,我试图从插件中创建另一个测试项目.我这样做的原因是在导出插件时不要让插件依赖于jUnit.但是,在进行测试时,我无法访问Eclipse Plug-in API.每当我尝试添加插件依赖项时,导入列表都是空的.
有谁知道如何将Eclipse插件API导入现有项目?工作区布局目前看起来像这样:
+- com.foo.myplugin
| |
| +- JRE System Library
| |
| +- Plug-in Dependencies
| |
| +- src
| |
| +- icons, META-INF, plugin.xml, etc...
|
+- com.foo.myplugin.test
|
+- JRE System Library
|
+- JUnit 4
|
+- src
Run Code Online (Sandbox Code Playgroud) 是否有可用于.NET项目的第三方库,可以将降价文档转换为html服务器端?即我已将Markdown文本存储在数据库中,该数据库在显示时需要转换为html.
我知道WMD,但它只转换客户端.
我有一个快速的小应用程序,并想尝试使用TDD开发.我从未使用过TDD,甚至在我找到ASP.NET-MVC之前甚至都不知道它是什么.(我的第一个MVC应用程序进行了单元测试,但它们很脆弱,方式耦合,保留太多,并且被放弃了 - 我来学习单元测试!= TDD).
应用背景:
我有一个以字符串形式读入的采购订单的文本转储.我需要解析文本并返回新的采购订单编号,新的行项目编号,旧的采购订单编号,旧的采购订单行号.很简单.
现在我只处理新的采购订单详细信息(数量/行),并有一个这样的模型:
public class PurchaseOrder
{
public string NewNumber {get; private set;}
public string NewLine {get; private set;}
new public PurchaseOrder(string purchaseOrderText)
{
NewNumber = GetNewNumber(purchaseOrderText);
NewLine = GetNewLine(purchaseOrderText);
}
// ... definition of GetNewNumber / GetNewLine ...
// both return null if they can't parse the text
}
Run Code Online (Sandbox Code Playgroud)
现在我想添加一个方法"IsValid",只有当"NewNumber"和"NewLine"都是非空时才应该为真.所以我想测试它像:
public void Purchase_Order_Is_Valid_When_New_Purchase_Order_Number_And_Line_Number_Are_Not_Null()
{
PurchaseOrder order = new PurchaseOrder()
{
NewNumber = "123456",
NewLine = "001"
};
Assert.IsTrue(order.IsValid);
}
Run Code Online (Sandbox Code Playgroud)
这很容易,但是允许公共setter和无参数构造函数似乎是一个糟糕的折衷方案.所以另一种方法是在构造函数中输入'purchaseOrderText'值,但之后我也在测试'GetNewNumber'和'GetNewLine'的代码.
我有点难以理解如何将其作为一个可测试的类写入,同时试图将其锁定在对模型有意义的方面.这似乎是一个常见的问题,所以我想我只是错过了一个明显的概念.
我一直在尝试记住如何在C#中编写事件和事件处理程序一段时间.每当我想在互联网上引用教程时,他们往往都很冗长.
问题是如何在C#中编写事件和事件处理程序?你有一个代码示例,很容易说明如何写这样的?
我的任务是将一个在线帮助文件添加到Windows应用程序中.所以我脑子里有几个问题:
如何创建帮助文件以及如何将它们添加到Windows窗体项目?
有没有一种很好的方法在VS解决方案中处理它们?
有没有关于如何做到这一点的教程?
public class BigPerformance
{
public decimal Value { get; set; }
}
public class Performance
{
public BigPerformance BigPerf { get; set; }
}
public class Category
{
public Performance Perf { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我打电话:
Category cat = new Category();
cat.Perf.BigPerf.Value = 1.0;
Run Code Online (Sandbox Code Playgroud)
我认为这打破了得墨忒耳定律/最少知识原理?
如果是这样,如果我有大量的内部类属性,我该如何解决这个问题呢?
是否有一些"LINQ"方式来条件选择数据,即如果第一个数据为空则从另一个来源中选择?一个例子是,如果你有一个项目的树结构,你想从一个根,或者如果它是空的,从它的孩子那里得到一些资产.
我有以下示例:
IEnumerable<Item> items = ...;
// Item has a Assets property that returns IEnumerable<Asset>
// Item has a SubItems property that returns IEnumerable<Item>
// i.e. other items with assets in them
// getting assets from a "main" item
var assets = item.Assets.Where(a => HasRelevantAsset(a));
// if there were no relevant assets in the "main" item
if (!assets.Any()) {
// then reselect from "subitems" assets instead
assets = item.SubItems.SelectMany(item =>
item.Assets.Where(a => HasRelevantAsset(a)));
}
// HasRelevantAsset(Asset) is a static method …Run Code Online (Sandbox Code Playgroud) 在优化开启时从包中呈现样式时,您可以获得:
<link href="/Content/themes/base/css?v=UM624qf1uFt8dYtiIV9PCmYhsyeewBIwY4Ob0i8OdW81" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
不幸的是,Android浏览器似乎没有加载带有查询字符串的URL.有没有办法在System.Web.Optimization中自定义此字符串?
编辑:
我的问题得到解答,我试图检测用户代理字符串上的android,并用一个查询字符串替换样式表.显然,我有问题,是不是因为查询字符串,它是精缩是造成它不能完全加载样式表在Android股票浏览器中的web字体的CSS版本.
Android股票浏览器无法加载带有转义反斜杠的css内容字符串,这是ASP.NET缩小器的一种解决方法,它会错误地缩小相同的css内容字符串.我最终将图标字体css样式放在它自己的"手工缩小"样式表上.
c# ×5
.net ×3
asp.net-mvc ×3
bug-tracking ×1
controller ×1
events ×1
html ×1
linq ×1
markdown ×1
offline ×1
rhino-mocks ×1
tdd ×1
testing ×1
trac ×1
unit-testing ×1
winforms ×1