小编use*_*969的帖子

测试和模拟私有/受保护的方法.许多帖子但仍然无法使一个例子有效

我已经看过许多关于"嘲弄私有方法"的帖子和问题,但仍然无法使其工作而没有找到真正的答案.让我们忘记代码的味道,你不应该这样做....

根据我的理解,我做了以下事情:

1)创建了一个类库"MyMoqSamples"

2)添加了对Moq和NUnit的引用

3)编辑AssemblyInfo文件并添加[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2")] [assembly:InternalsVisibleTo("MyMoqSamples")]

4)现在需要测试私有方法.因为它是私有方法,所以它不是接口的一部分.

5)添加以下代码

[TestFixture]
public class Can_test_my_private_method
{
    [Test]
    public void Should_be_able_to_test_my_private_method()
    {
        // TODO how do I test my DoSomthing method?
    }
}

public class CustomerInfo
{
    public string Name { get; set; }
    public string Surname { get; set; }
}

public interface ICustomerService
{
    List<CustomerInfo> GetCustomers();
}

public class CustomerService : ICustomerService
{
    public List<CustomerInfo> GetCustomers()
    {
        return new List<CustomerInfo> { new CustomerInfo { Surname = "Bloggs", Name = "Jo" } }; …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq

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

使用C#从DateTime获取一天

愚蠢的问题.鉴于日期时间的日期,我知道它是星期二,例如我怎么知道它的tue = 2和mon = 1等...

谢谢

c# datetime dayofweek

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

进程无法访问文件"MyFile.log",因为它正由另一个进程使用

我正进入(状态

该进程无法访问文件"MyFile.log",因为它正由另一个进程使用.

而我这样做

File.SetAttributes(filename,FileAttributes.Normal)

using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{
    // Do stuff with log4net log
}
Run Code Online (Sandbox Code Playgroud)

我已阅读其他帖子,但他们都建议我已经在做什么.还有其他建议吗?

谢谢.

.net c# log4net

11
推荐指数
1
解决办法
9149
查看次数

在wpf世界中使用6个月并且不使用混合物应该使用它吗?

我正在寻找一些指导和建议.我是wpf"6个月"的新手,在Windows窗体中开发了8年.

我仍然没有打开或使用blend.I可以看到这是一个设计师的工具,但从程序员的角度来看,这些天有很多东西需要学习,不知道我是否应该打扰.

我是否应该学习如何使用混合物?除了设计东西之外还融合了任何很酷的功能,并使它变得漂亮,这将使我作为一名wpf程序员的生活更轻松吗?

如果您认为我应该学会使用表达混合,请告诉我?

谢谢

编辑

我不知道如何为每个人提供一般性答案,所以我编辑了我的问题.

伙计们非常感谢你们所有的答案都很好.我一定会看到它,但不会深入.一个有趣的观点是看看如何构建控件并从中学习.在这个阶段我根本不做任何设计我只是一个纯粹的开发人员.再次感谢.

.net wpf xaml expression-blend

10
推荐指数
2
解决办法
428
查看次数

如何在循环中修改队列集合?

我有一个场景,我需要在处理后尽快删除队列中的项目.我知道我不能在循环中从一个集合中删除一个项目但是想知道是否可以使用枚举器等完成某些事情......

这只是一个基本的例子,抛出错误"在实例化枚举数后修改了集合".

有什么建议?非常感谢!!!

代码如下:

     class Program
        {
            static void Main()
            {

                Queue<Order> queueList = GetQueueList();

                foreach (Order orderItem in queueList)
                {
                    Save(orderItem);
                    Console.WriteLine("Id :{0} Name {1} ", orderItem.Id, orderItem.Name);
                    queueList.Dequeue();
                }
                Console.Read();

            }

            private static void Save(Order orderItem)
            {
               //we are pretending to save or do something.
            }

            private static Queue<Order>GetQueueList()
            {
                Queue<Order> orderQueue = new Queue<Order>();
                orderQueue.Enqueue(new Order { Id = 1, Name = "Order 1" });
                orderQueue.Enqueue(new Order { Id = 1, Name = "Order 2" });
                orderQueue.Enqueue(new …
Run Code Online (Sandbox Code Playgroud)

c#

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

Moq示例使用out和ref需要

我正在尝试针对实现输出参数的一些遗留方法构建测试.你能举个例子说明怎么做吗?

moq

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

如何获取配置文件的ConnectionString名称

我可以从配置文件中读取connectionstring/s但是我需要获取与连接字符串相关联的元素名称

<connectionStrings>
<add 
  name="LocalSqlServer" 
  connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
  providerName="System.Data.SqlClient"   />
 </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我需要从connectionString中获取LocalSqlServer

c#

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

Ctrl+K、Ctrl+C 是不再在 Visual Studio 2010 中工作的命令

我正在使用 Visual Studio 和 Resharper 8。

由于某些原因,我最喜欢的快捷键Ctrl+ KCtrl+CCtrl+D不再有效。

事实上,应用程序在状态栏中显示消息:The key combination is(Ctrl K Ctrl C ) is not a command

任何想法如何重置它们?

非常感谢。

c# resharper keyboard-shortcuts visual-studio-2010

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

修改字典值是可能的.什么是正确的方法?

我有填充的字典,我无法控制.

我需要修改值我该怎么做?

我把一个简单的例子放在一起来解释这个问题

class Program
{
    static void Main(string[] args)
    {


        Dictionary<Customer, int> CustomerOrderDictionary = new Dictionary<Customer, int>();

        CustomerOrderDictionary.Add(new Customer { Id = 1, FullName = "Jo Bloogs" },3);

        CustomerOrderDictionary.Add(new Customer { Id = 2, FullName = "Rob Smith" },5);

        //now I decide to increase the quantity but cannot do the below as value has no setter

        foreach (var pair in CustomerOrderDictionary)
        {
            if(pair.Key.Id==1)
            {
                pair.Value = 4;///ERROR HERE
            }
        }
    }
}


public class Customer
{
    public int Id …
Run Code Online (Sandbox Code Playgroud)

c#

7
推荐指数
2
解决办法
5756
查看次数

如何在sql server中的字符串中获取最后一个char

有点生锈的SQL.在select语句中,如果字段"string"以字母A,B或F结尾,则打印0k,否则打印否

我知道我需要做一些子串但不能正确.

谢谢

t-sql sql-server

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