嗨,我是TDD和xUnit的新手所以我想测试我的方法,例如:
List<T> DeleteElements<T>(this List<T> a, List<T> b);
Run Code Online (Sandbox Code Playgroud)
当然这不是真正的方法:)我可以使用任何Assert方法吗?我觉得这样的事情会很好
List<int> values = new List<int>() { 1, 2, 3 };
List<int> expected = new List<int>() { 1 };
List<int> actual = values.DeleteElements(new List<int>() { 2, 3 });
Assert.Exact(expected, actual);
Run Code Online (Sandbox Code Playgroud)
有这样的事吗?
我是NHibernate这个伟大世界的新手.我使用的是2.0.1.GA版.这是我的问题.我有一个Cars
包含列Manufacturer(nvarchar(50))
和主键的表ID(int)
.我的.NET类是:
public class Car
{
public virtual int ID { get; set; }
public virtual string Manufacturer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我想要检索梅赛德斯生产的所有汽车,我必须输入:
using (var session = OpenSession())
{
var cars = session
.CreateCriteria(typeof(Car))
.Add(Restrictions.Like("Manufacturer", "Mercedes"))
.List();
// ...
}
Run Code Online (Sandbox Code Playgroud)
我不喜欢这样的事实,我需要将属性名称指定为字符串:(是否可能有更多的重构友好(这只是一个建议)?
var ms = session
.CreateCriteria<Car>()
.Add(c => c.Manufacturer, Restrictions.Like("Mercedes")
.List();
Run Code Online (Sandbox Code Playgroud)
在当前版本(2.0.1.GA)或未来版本中有什么类似的东西?
我有一个实体客户
public class Customer
{
public virtual int ID { get; set; }
public virtual string Firstname { get; set; }
public virtual string Lastname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的DAL方法是:
public IList<Customer> GetCustomers(Customer example)
{
var customers = default(IList<Customer>);
using (var sessiong = GetSession())
{
customers = sessiong.CreateCriteria(typeof(Customer))
.Add(Example.Create(example))
.List<Customer>();
}
return customers;
}
Run Code Online (Sandbox Code Playgroud)
但问题是,当我这样调用我的方法时
var exemple = new Customer() { ID = 2 };
var customers = provider.GetCustomers(exemple);
Run Code Online (Sandbox Code Playgroud)
我拥有数据库中所有客户的集合,因为NHibernate生成以下SQL查询
NHibernate: SELECT this_.CustomerId as CustomerId0_0_, this_.Firstname as Firstname0_0_, this_.Lastname …
Run Code Online (Sandbox Code Playgroud) 我有一个相对较大的字符串,在程序运行期间不会改变.标记它们是否明智const string
(为了获得一些想象中的性能优势)?为这些字符串分配的内存最终会被垃圾回收吗?