标签: mspec

如何让ReSharper停止在我的MSpec成员上放置显式访问修饰符?

我正在使用Machine.Specifications,我真的很烦恼VS2010/Resharper如何继续尝试格式化我的代码...例如:

Establish context = () => the_cartoon_repository = DependencyOf<INHibernateRepository<Cartoon>>();
Run Code Online (Sandbox Code Playgroud)

变成了:

private Establish context = () => the_cartoon_repository = DependencyOf<INHibernateRepository<Cartoon>>();
Run Code Online (Sandbox Code Playgroud)

我按下回车键.哎呀!必须要解决这个问题,不是吗?

c# resharper mspec

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

如何使用Gallio在Visual Studio的测试系统中运行MSpec?

我正在尝试使用Gallio在Visual Studio的测试系统中运行MSpec测试,但它似乎忽略了IDE中的MSpec插件.我做了什么:

  1. 安装了Gallio
  2. 在我的测试项目中添加了MSpec NuGet包
  3. 在我的测试项目中添加了Gallio NuGet包
  4. 将MSpec Gallio集成所需的三个文件复制到Gallio安装目录中的"MSpec"文件夹
  5. 写了MSpec测试
  6. 在IDE中执行"解决方案中的所有测试"

这产生了以下错误

"没有运行任何测试,因为没有加载测试或禁用了选定的测试"

为了检查Gallio本身,我添加了对MbUnit的引用并创建了一个简单的MbUnit测试.我还运行了Gallio的其他工具来检查插件是否被拾取.我甚至重新启动了VS.

结果

运行测试使用Gallio.EchoGallio.Icarus成功执行都MbUnit的和MSpec测试,所以这个插件被拾起.从Visual Studio运行测试运行MbUnit测试但不运行MSpec测试,因此Gallio集成似乎正在运行(而不是MSpec插件).有什么想法吗?

在任何人提到它之前:是的,我宁愿使用ReSharper,但目前我的情况不是许可证.

gallio visual-studio-2010 mspec

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

ReSharper没有看到我的Machine.Specification测试

我在让ReSharper看到Machine.Specification"测试"时遇到了问题.

规范在mSpec的ConsoleRunner中运行.当我尝试在ReSharper中"运行单元测试"时,我收到一条消息:"文件中没有找到测试." 规格没有显示测试标记.

我在ReSharper/bin /文件夹中创建了一个文件夹,并将正确的.dll放在那里.mSpec插件出现在ReSharper中.

我可能会失踪什么?

另外,如果有所不同,我正在使用xUnit.NET.

resharper xunit.net mspec

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

使用模拟框架和MSPEC时,您在哪里设置存根

我使用MSpec相对较新,因为我编写了越来越多的测试,显然减少重复,你经常需要根据Rob Conery的文章使用基类进行设置

我很高兴使用AssertWasCalled方法来验证我的期望,但是你在哪里设置了stub的返回值,我发现在基类中设置上下文注入我的依赖项很有用但是(我认为)意味着我需要在我觉得错误的因委托中设置我的存根.

我错过了更好的方法吗?

bdd unit-testing rhino-mocks mspec

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

无论有没有nunit,mspec会更好吗?

我在一些博客和讨论中看到mspec与nunit一起使用.事实上,我见过的网络上的大多数示例都展示了具有某种nunit依赖性或集成的mspec.我的团队正在尝试在新的ASP.NET MVC2项目中使用mspec而不使用nunit.我们还没有进入规范写作阶段,所以我不知道什么是更好的.你对此有何体验?将mspec与nunit一起使用有什么好处?没有?

nunit mspec asp.net-mvc-2

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

将MSpec测试转换为普通NUnit

我正在尝试开始使用纯TDD并考虑BDD风格.我试图掌握,与MSpec相比,写作单元测试的感觉与NUnit完全不同.

考虑一个简单的MSpec测试,如下所示:

[Subject("PersonRepository")]
class when_adding_a_new_person
{
     Establish context = () => sut = new PersonRepository();

     Because of = () => sut.AddPerson("Jim", "Panse");

     It should_have_a_person = sut.Count.ShouldEqual(1);
     It should_have_that_persion = sut.Contains("Jim", "Panse");

     static PersonRepository;
} 
Run Code Online (Sandbox Code Playgroud)

你如何以干净的方式将其转换为NUnit,但不使用任何BDD扩展或任何东西.我认为每个应该断言是一个可单独运行的测试Establish并且 Because应该只对所有断言执行一次是个好主意.我可以使用[Setup]EstablishBecause,但会为每个测试运行.我可以用Assert.It,但是这不会让他们单独运行的测试.

这个例子与NUnit风格相比如何?

tdd bdd comparison nunit mspec

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

如何在继承类的规范中包含基类的规范?

我有一个RSSDataSourceParser完全由MSpec规范涵盖的类.我也有一个继承的类MultimediaRSSDataSourceParser.它完成所有父功能以及对iTunes RSS扩展的识别.我在单独的规范中介绍了扩展功能.

但是,阅读测试套件的业务人员只能看到扩展的规范MultimediaRSSDataSourceParser.他们也希望从中看到继承的功能RSSDataSourceParser.

复制这些规范听起来很荒谬,可能会导致未来的代码管理问题.有没有办法继承父母的规范?

c# mspec

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

这个MSpec测试可以改进吗?

作为BDD和MSpec的初学者,我仍然不太了解与BDD相关的最佳实践和良好习惯,特别是MSpec.

可以改进以下示例吗?它遵循最佳做法和良好习惯吗?

  1. 是我的规范类和行为的命名好吗?
  2. 我应该在这种情况下使用行为还是应该为spec类使用公共基类?
  3. 可以没有Establish这里吗?
  4. 我应该使用静态工厂方法(TestData方法)来获取测试数据还是应该在规范本身中创建数据?
  5. 而不是测试我可以使用的行为中的每个属性,result.Equals()但我会测试两件事,这是不好的,对吧?

请随意将示例重构为您认为更好的内容.

[Subject(typeof(DataItemReader))]
public class When_reading_a_DataItem_from_stream
{
    Because of = () =>
    {
        using (var reader = new DataItemReader(
            new MemoryStream(TestData.GetNormalDataItemAsByteArray()), Encryption.None))
        {
            result = reader.ReadItem();
        }
    };

    Behaves_like<DataItemReader_that_reads_correctly> behavior;

    protected static DataItem result;
}

[Subject(typeof(DataItemReader))]
public class When_reading_a_DataItem_from_encrypted_stream
{
    Because of = () =>
    {
        using (var reader = new DataItemReader(
            new MemoryStream(TestData.GetNormalDataItemAsByteArrayEncyrpted()), Encryption.Default))
        {
            result = reader.ReadItem();
        }
    };

    Behaves_like<DataItemReader_that_reads_correctly> behavior;

    protected static DataItem result;
} …
Run Code Online (Sandbox Code Playgroud)

bdd mspec

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

什么是MSpec与Visual Studio集成的替代工具?

我最近完成了一个C#项目,并使用Machine.Fakes在MSpec上编写了测试.我一直在使用命令行运行器.在Visual Studio中查看测试结果/运行会更舒服.但是,ReSharper不在我的预算之内.有吸引力的选择吗?

c# resharper mspec

2
推荐指数
1
解决办法
1334
查看次数

如何在特定的线程文化中执行MSpec规范?

我有一些测试代码执行文化感知转换的规范.我想为我的测试设置一个定义的文化,这样我就可以对预期的值进行硬编码,而不必担心运行测试的系统的配置文化.

有没有一种简单的方法可以使用Machine.Specifications来执行此操作,还是必须设置Thread.CurrentThread.CurrentCulture(也可能CurrentUICulture)?

cultureinfo currentculture mspec

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