我的公司对我们的代码进行单元测试是相当新的.我已经阅读了一段时间关于TDD和单元测试的信息并且确信它们的价值.我试图让我们的团队相信TDD值得学习和改变我们的编程思路,但这是一场斗争.这让我想到了我的问题.
TDD社区中有很多人非常虔诚地写测试然后编写代码(我和他们一起),但对于一个正在与TDD斗争的团队来说,妥协仍然会带来额外的好处吗?
编写代码后,我可能成功让团队编写单元测试(可能是检查代码的要求),我的假设是编写单元测试仍然有价值.
将陷入困境的团队带入TDD的最佳方式是什么?如果失败的话,即使代码写完之后仍然值得编写单元测试吗?
编辑
我从这里得到的是,在编码过程中的某个地方开始进行单元测试非常重要.对于那些接受概念的团队成员,开始更多地转向TDD并首先进行测试.感谢大家的投入.
跟进
我们最近开始了一个新的小项目,并且团队的一小部分使用了TDD,其余的在代码之后编写了单元测试.在我们完成了项目的编码部分之后,那些编写单元测试代码后,他们惊讶地看到TDD编码器已经完成并且代码更加可靠.这是赢得怀疑论者的好方法.我们仍然有很多成长的痛苦,但意志之战似乎已经结束.感谢所有提供建议的人!
在我工作的地方,我们已经多次在这个问题上来回走动,正在寻找一个健全性检查.这是一个问题:Business Objects应该是数据容器(更像是DTO)还是应该包含可以对该对象执行某些功能的逻辑.
示例 - 获取客户对象,它可能包含一些常见属性(Name,Id等),客户对象是否还包含函数(Save,Calc等)?
一行推理说,将对象与功能(单一责任主体)分开,并将功能放在业务逻辑层或对象中.
另一条推理说,不,如果我有一个客户对象,我只想打电话给Customer.Save并完成它.如果我正在使用该对象,为什么我需要知道如何保存客户?
我们的最后两个项目已经将对象与功能分开,但是在新项目中再次提出了争论.哪个更有意义?
编辑
这些结果与我们的辩论非常相似.对一方或另一方的一票完全改变了方向.有没有人想加2美分?
编辑
尽管答案抽样很小,但似乎大多数人认为业务对象中的功能是可接受的,只要它很简单,但持久性最好放在单独的类/层中.我们试一试.感谢大家的投入......
我正在连接到一个API,其中一个参数是Long (13位)来保存timestamp
VB.Net中的当前值,表示从0:00:00 01.01.1970 in GMT
当前时间开始经过的毫秒数.
格式应该是这样的 1290932238757
我试过这个syntex:
DirectCast((Datetime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds, Int64)
Run Code Online (Sandbox Code Playgroud)
但输出是:
01/12/2013 02:06:24
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Entity Framework将实体插入到我的数据库中.见下文:
private void InsertarIntoDataBase()
{
Juego game = db.games.First(g => g.Id == anId);
Day d = new Day {
DayNumber = this.Number,
Game = game // This is a relationship. One Day has one game
};
db.AddToDay(d);
db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
这始终是插入,而不是更新.我第一次运行我的应用程序,它工作,之后它停止工作,抛出此异常An error occurred while updating the entries. See the InnerException for details.
.(我确信我没有改变任何事情).
为什么框架认为我正在更新?我错了什么?
如何在ASP.NET中获得以下结果:
INPUT字符串: "Duck, Donald"
必填字符串: "Donald Duck"
PS:输入字符串是动态的.