我在DI IOC的Web项目中使用StructureMap.它工作得很完美,但我不知道如何用StructureMap编写单元测试.
我应该在AssemblyInitialize中开始配置StructureMap,就像在global.asax中一样,除了datacontext不使用实时LinqToSqlDataContext但是有些内存数据如下:
[AssemblyInitialize]
public static void Start()
{
ObjectFactory.Configure(x =>
{
x.For<IDataContext>().HttpContextScoped().Use<MemoryDataContext>()
.Ctor<string>("connectionString")
.Is(ConfigurationManager.ConnectionStrings["DEVConnection"].ConnectionString);
x.For<IDepartamentRepository>().Use<DepartamentDB>();
x.For<IDevelopmentProcess>().Use<DevelopmentProcesses>().OnCreation(c => c.User = Current.CurrentUser);
x.For<IActivityProcess>().Use<ActivitiesProcess>().OnCreation(c=> c.User = Current.CurrentUser);
x.For<IDevDeveloperRepository>().Use<DevDeveloperDB>();
x.For<IDevelopmentRepository>().Use<DevelopmentDB>();
x.For<IActivityRepository>().Use<ActivityDB>();
x.For<IActivityTypeRepository>().Use<ActivityTypeDB>();
x.For<IDevUserRepository>().Use<DevUsersDB>();
x.For<IAttachmentRepository>().Use<AttachmentDB>();
}
);
}
Run Code Online (Sandbox Code Playgroud)
然后使用ObjectFactory.GetInstance()测试或我该怎么做?
如何知道在渲染函数中更改视图模型的哪个属性?(在渲染函数中,"e"是模型,但我只需要更改的属性.)我需要知道这个以了解要使用的模板.或者还有另一种方法吗?
window.Person = Backbone.Model.extend({});
window.Njerzit = Backbone.Collection.extend({
model: Person,
url: '/Home/Njerzit'
});
window.PersonView = Backbone.View.extend({
tagName: 'span',
initialize: function () {
_.bindAll(this, 'render');
this.model.bind('change', this.render);
},
render: function (e) {
//if model name is changed, I need to render another template
this.template = _.template($('#PersonTemplate').html());
var renderContent = this.template(this.model.toJSON());
$(this.el).html(renderContent);
return this;
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个网站,我前段时间他们现在要求一些新功能,我在一些javascript文件中做了一些更改,但是当我发布使用IE的客户端有缓存问题所以在他们的浏览器中他们有旧版本的JavaScript .如何清除客户端缓存,以便当他们访问网站时,他们使用我修改的最新javascript文件.
我有一个字节数组来自条形码阅读器(通过COM端口连接)读取ID卡.当我转换它们时,我可以读取一些数据,例如:
姓名,姓氏,城市
等,但如果某些数据有某些字符,如'Ë'或'Ç',或者某些字符在我们的语言中使用[编辑:OP在普里什蒂纳,科索沃],我会得到'?'.如何通过解码获得这些字符?
我整天都在摸索着我的头脑,我找不到任何解决方案,所以我得到了帮助.听到我的问题:我有两个实现一个接口的类
public interface ICacheObject
{
string Get();
}
public class WebCacheObject : ICacheObject
{
public string Get()
{
return "Web";
}
}
public class SysteCacheObject : ICacheObject
{
public string Get()
{
return "System";
}
}
Run Code Online (Sandbox Code Playgroud)
所以在其他一些clase For Class in Class Test中,我需要注入WebCacheObject,并且在Test2中我必须注入SystemCacheObject.我在Initialize中做了这个:
ObjectFactory.Initialize(c =>{ c.For<IMessage>().Use<Message>();
c.For<ICacheObject>().ConditionallyUse(t =>{t.If(g => g.RequestedName == "HTTP")
.ThenIt.Is.ConstructedBy(
() =>
new WebCacheObject());
t.If(g =>g.RequestedName =="OtherCache")
.ThenIt.Is.ConstructedBy(
() =>
new SysteCacheObject
());
});
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何调用Test-s clase-s所以如果我这样调用条件是真的(或者如何改变条件,那么这将起作用)
ObjectFactory.GetInstance <'ITEST>()
测试Clase将在其他情况下使用WebCache SystemCache ???
对不起,我的英语不好.