我试图处理单元测试一个非常简单的ASP.NET MVC测试应用程序,我使用最新的EF4 CTP中的Code First方法构建.我对单元测试/模拟等不太熟悉.
这是我的Repository类:
public class WeightTrackerRepository
{
public WeightTrackerRepository()
{
_context = new WeightTrackerContext();
}
public WeightTrackerRepository(IWeightTrackerContext context)
{
_context = context;
}
IWeightTrackerContext _context;
public List<WeightEntry> GetAllWeightEntries()
{
return _context.WeightEntries.ToList();
}
public WeightEntry AddWeightEntry(WeightEntry entry)
{
_context.WeightEntries.Add(entry);
_context.SaveChanges();
return entry;
}
}
Run Code Online (Sandbox Code Playgroud)
这是IWeightTrackerContext
public interface IWeightTrackerContext
{
DbSet<WeightEntry> WeightEntries { get; set; }
int SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
......及其实现,WeightTrackerContext
public class WeightTrackerContext : DbContext, IWeightTrackerContext
{
public DbSet<WeightEntry> WeightEntries { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的测试中,我有以下内容:
[TestMethod]
public void Get_All_Weight_Entries_Returns_All_Weight_Entries() …Run Code Online (Sandbox Code Playgroud) 我发现我可以使用此脚本添加自己的布局句柄:
$this->getLayout()->getUpdate()->addHandle('myhandle');
Run Code Online (Sandbox Code Playgroud)
然后我检查了Alan Storm Layout的观众:http://alanstorm.com/2005/projects/MagentoLayoutViewer.tar.gz
?showLayout =把手
处理此请求
- 默认
- cms_page
- STORE_default
- THEME_frontend_default_default
- cms_index_index
- page_two_columns_left
- customer_logged_out
- myhandle
有我的句柄,但我的自定义布局xml没有使用.
这是我的xml:
<?xml version="1.0"?>
<layout version="0.1.0">
<myhandle>
<reference name="head">
<action method="addJs"><script>test/your.js</script></action>
</reference>
</myhandle>
</layout>
Run Code Online (Sandbox Code Playgroud)
这工作正常,因此加载了xml文件:
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="head">
<action method="addJs"><script>test/your.js</script></action>
</reference>
</default>
</layout>
Run Code Online (Sandbox Code Playgroud)
怎么了?为什么不能使用这个解决方案?
如果它不是正确的方法,我如何为小部件使用的页面添加自定义css和javascript?
更新:这可能是接近解决方案的东西:
如果我在向页面添加新句柄后添加此代码:
$this->getLayout()->getUpdate()->fetchPackageLayoutUpdates('myhandle');
$this->getLayout()->generateXml();
Run Code Online (Sandbox Code Playgroud)
在此之后,"index.php?showLayout = page"调用在xml中写入句柄代码,但页面不使用它.
我正在为工作中使用的文档类型制作乳胶模板。对于那个文档,我有两个不同的“命令”来制作标题页;和其他来制作文档的其余部分。
我在标题页中需要的边距与文档其余部分中的边距不同。因此,我对标题页有一些“\setlength”命令,其余部分则有其他命令。
问题是当我编译文档时,不同的边距只在它们应该生效的一页之后生效。例如,如果我想要一个页面的标题页和文档的其余部分不同,会发生什么是第一页有标题边距,第二页有标题边距(不应该),从第三页开始文档其余部分的边距是正确的。
我究竟做错了什么?
你能告诉我你制作这样的文件的策略是什么吗?
先感谢您!
我有一个带有Flags属性的枚举.
我的问题是,我想获得所有选项的整数位掩码,而无需自己手动组合所有位.我想这样做以与其他一些int字段进行比较,我希望保护以防未来的开发人员向枚举广告添加更多位选项.
另一件事是我的枚举标志中的位将全部手动分配,所以我不能简单地得到下一个值并减去1.
迭代对象的属性时,在for-in循环中删除它们是否安全?
例如:
for (var key in obj) {
if (!obj.hasOwnProperty(key)) continue;
if (shouldDelete(obj[key])) {
delete obj[key];
}
}
Run Code Online (Sandbox Code Playgroud)
在许多其他语言中迭代数组或字典并删除内部不安全.在JS中可以吗?
(我正在使用Mozilla的Spidermonkey运行时.)
从Visual Studio 2010开始的Asp .NET MVC 2应用程序在我看来是该死的.刷新或打开新页面需要2-5秒.你有同样的问题吗?你知道这个ASP .NET MVC 2调试模式是否可以以某种方式加速?
我在64位计算机,Windows 7和Visual Studio 2010上工作.
几乎就是这样.寻找移动jQuery缓存的最佳实践.我在这里先向您的帮助表示感谢.
我有一个bash脚本,可以多次调用MySQL.而不是必须重新连接到MySQL,有没有办法保持连接打开?理想情况下,如果脚本提前退出,则连接将关闭.我认为命名管道可以工作,但他们会保持开放.
这是我希望找到的一个快速伪示例:
openMySQL
executeMySQL "SELECT 1"
exit 1
executeMySQL "SELECT 2"
Run Code Online (Sandbox Code Playgroud)
我正在寻找MySQL连接实际关闭期间的函数openMySQL和executeMySQL函数exit 1.
我有一个ItemsControl,它使用Canvas和ItemsPanel.itemsTemplate托管自定义控件.当点击控件时我希望它"移到前面".我知道我可以在我的控制中使用ZIndex这样做:
private void MyControl_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if(((FrameworkElement)sender).TemplatedParent==null) return;
ContentPresenter presenter = (ContentPresenter)((FrameworkElement) sender).TemplatedParent;
int currentValue = Panel.GetZIndex(presenter);
Console.WriteLine(currentValue);
Panel.SetZIndex(presenter, 99);
}
Run Code Online (Sandbox Code Playgroud)
这可以正常工作并设置ZIndex.但是当我点击ItemsControl中的不同控件时,它将获得完全相同的ZIndex,因此它不会"移动到另一个控件的前面".
基本上我只想要与windows展示相同的行为.
我已经尝试在PreviewMouseUp事件中将ZIndex设置为0,这确保了单击的控件始终位于顶部,但由于所有其他控件具有相同的ZIndex为0,因此将基于其中的位置采用默认顺序列表.
一个例子:
假设我有3个控件,ZIndex都为0.(所以他们使用默认的列表位置.)
如果我点击控件3,那么2然后1.我希望它在ZOrder的顶部有3,然后是2然后1.但是因为我在MouseUp上将ZIndex设置为零,它将具有默认顺序1,2,3.
有没有一种简单的方法来处理这个问题,或者我是否需要跟踪顺序并递增递减任意值,例如我自己的99?
当我阅读关于新的4.0.2 iOS更新时,我想知道黑客做了什么或尝试做缓冲区溢出,这是在一些维基百科让我对使用malloc感兴趣并因此创建我自己的"NSObject"之后.
我实际上并没有计划在我的任何应用程序中使用它,它只用于学习和使用objective-c.
当然,正如预期的那样,我遇到了一些我无法解决的问题.
为了创建我的对象我做:
+ (id)create{ return malloc(sizeof(self)); }
Run Code Online (Sandbox Code Playgroud)
和
- (void)free { free(self); }
Run Code Online (Sandbox Code Playgroud)
调用[TestObject create]时; 我收到以下控制台消息:
"8/11/10 11:17:31 PM TestingHeap [2675]***NSInvocation:警告:类'AObject'的对象0x100002100未实现doesNotRecognizeSelector: - abort"
所以它试图将我的对象作为NSObject处理..?以及如何解决这个问题.
另外,在没有Foundation或AppKit的情况下进行编译时,我会发现缺少符号的错误,特别是__objc_empty_vtable和__objc_empty_cache.我试过从/ usr/include/objc /中包含几个头文件
提前致谢.
更新
在与libobjc链接后,我尝试从我的类中调用方法时收到EXC_BAD_INSTRUCTION.
c# ×3
asp.net-mvc ×2
bash ×1
caching ×1
cocoa ×1
cocoa-touch ×1
debugging ×1
document ×1
enums ×1
html5 ×1
javascript ×1
jquery ×1
latex ×1
loops ×1
macos ×1
magento ×1
margins ×1
mobile ×1
mocking ×1
mysql ×1
nsobject ×1
object ×1
objective-c ×1
properties ×1
templates ×1
unit-testing ×1
widget ×1
wpf ×1
z-index ×1