小编Boo*_*oks的帖子

单元测试和集成测试有什么区别?

单元测试和集成测试有什么区别?

这些测试有不同的名称吗?像一些人称单元测试功能测试等?

integration-testing unit-testing

365
推荐指数
5
解决办法
21万
查看次数

为什么更喜欢REST而不是SOAP?

如果我需要一个Web服务来回传递一个复杂的对象,我是否应该选择SOAP over REST?以下是可能的SOAP消息的示例:

<soap:Envelope>
  <soap:Header>
    <Credentials>
      <User>Joe</User>
      <Password>abc123</Password>
    </Credentials>
  </soap:Header>
  <soap:Body>
    <MyComplexBusinessObject>
      <Search>
        <First>Joe</First>
        <Last>Smith</Last>
      </Search>
      ...
      ...
    </MyComplexBusinessObject>
  </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

使用REST,我会要求客户端POST以下xml并使用基本身份验证进行身份验证:

<MyComplexBusinessObject>
  <Search>
    <First>Joe</First>
    <Last>Smith</Last>
  </Search>
  ...
  ...
</MyComplexBusinessObject>
Run Code Online (Sandbox Code Playgroud)

SOAP消息稍微复杂一些,但不是很多.它们仍然是XML,但SOAP带有WSDL,大多数编程环境都会为您生成代理类.但是,我与之交谈的大多数人都说我应该使用REST,因为它更容易使用.但我不知道SOAP如何更难使用.

我错过了什么吗?

rest soap web-services

11
推荐指数
2
解决办法
2万
查看次数

存储过程修改时间

有没有办法找出上次修改存储过程或表的时间?我尝试通过SQL Management Studio检查属性,但只找到了创建日期.

谢谢!

t-sql sql-server stored-procedures

9
推荐指数
1
解决办法
1万
查看次数

长输入的单元测试

[TestMethod]
public void SomeTestMethod()
{
    string input = "some looooong input...";

    var proc = new Processor()
    string result = proc.DoSomething(input);

    Assert.Equals("good", result);
}
Run Code Online (Sandbox Code Playgroud)

如果我正在编写一个单元测试并且我的输入非常长(例如EDI事务),那么我应该将其作为长字符串粘贴到我的测试方法中吗?

其他人建议我应该将长字符串粘贴到文件中,并将该文件视为我的测试项目中的嵌入式资源.如果我做了类似的事情,我需要为每个测试提供不同的输入,我可以看到很多文件堆积起来并变得难以维护.

有没有围绕这个的最佳做法?我应该继续将这些长字符串粘贴到我的测试方法中吗?

c# unit-testing

9
推荐指数
1
解决办法
808
查看次数

存储库模式 - 方法太多

我经常看到示例存储库模式,如下所示:

public interface IRepository<T>
{
    T GetById(int id);
    IEnumerable<T> GetAllByName(string name);
}
Run Code Online (Sandbox Code Playgroud)

但是,您如何处理可能需要进行复杂搜索的案例?我不认为向界面添加许多方法会使它最终看起来像是一个好主意:

IEnumerable<T> GetAllByFirstName(string name);
IEnumerable<T> GetAllByLastName(string name);
IEnumerable<T> GetAllByFirstAndLastName(string name);
IEnumerable<T> GetAllByAddress(string name);
...
...
...
Run Code Online (Sandbox Code Playgroud)

c# design-patterns

8
推荐指数
1
解决办法
2178
查看次数

Resharper - 说服管理层

可能重复:
Resharper的商业案例

嗨,大家好!

我刚刚毕业,我在为我的第一家公司工作.在大学期间,我的一位教授让每台计算机装满了Resharper,我很喜欢!我为自己买了个人许可证,从那以后一直在使用它.

但在我的新工作中,只有少数人(大多数是高级开发人员)正在使用Resharper.当我让我的主管为自己购买许可证时,我被击落了,因为"它不会提高1级程序员的工作效率".

我试过向他们展示Resharper只是程序员薪水的一小部分,这将使我作为程序员的生活更轻松.但不幸的是,我的言辞被置若罔闻.是否有任何案例或论据可以提交给我的主管,告诉他们这会提高我的工作效率?

谢谢!

resharper

5
推荐指数
2
解决办法
1758
查看次数

城堡温莎伐木设施

我正在尝试删除一些日志记录依赖项,并偶然发现Castle Windsor的日志记录工具.但是,我对是否应该使用它持怀疑态度.

public class MyClass
{
    public Castle.Core.Logging.ILogger Logger { get; set; }

    ...
}
Run Code Online (Sandbox Code Playgroud)

Windsor的日志记录工具要求您将记录器作为属性公开.这真的是一个好习惯吗?我觉得我几乎打破了封装,因为通常当我重用一个组件时,我不关心它的日志记录机制,我通常不希望看到它暴露.

如果我使用使用静态类创建日志的自定义包装器,我可以将其保密.例如:

public class MyClass
{
    private static MyCustomWrapper.ILogger Logger = LogManager.GetLogger(typeof(MyClass));

    ...
}
Run Code Online (Sandbox Code Playgroud)

我在网上搜索了我应该使用日志记录工具的原因,但我只是找到了如何使用它的文章,但不是为什么我应该使用它.我觉得我错过了这一点.暴露日志记录组件会让我感到害怕.

castle-windsor inversion-of-control

5
推荐指数
1
解决办法
656
查看次数

性能日志库

我想通过记录业务事件来开始监视应用程序的性能.我正在寻找与log4net或其他日志库类似的东西,但是为性能/健康监控量身定制.

我的目标是使用性能计数器发布这些业务事件,但我真的不觉得用性能计数器代码丢弃我的代码是个好主意.就像log4net抽象注销一样,是否有一个现有的库将性能/健康监控抽象到自己的库中?

.net logging performancecounter health-monitoring

4
推荐指数
1
解决办法
1468
查看次数

SQL中的通配符搜索

我遇到了一些使用此条件的查询:

select ...
where Name like '%'
Run Code Online (Sandbox Code Playgroud)

是否有使用这样的通配符的目的?

t-sql sql-server

3
推荐指数
1
解决办法
371
查看次数