2014-02-20 3 views
6

Я пытаюсь использовать метод расширения Mspec's ShouldBeOfType<T>(), но intellisense говорит, что он не может его найти. Я использую MSpec v0.7.0. Я попытался переустановить с помощью Nuget, но не работал.Почему MSBC's ShouldBeOfType <T> отсутствует?

[Subject("Prop Manager")] 
public class When_Replying_To_Prop_Which_Already_Had_Emailed_And_No_Overwrite 
{ 
    Because of =() => _exception = Catch.Exception(() => _PropManager.ReplyToProp()); 

    It should_result_in_an_error =() => _exception.ShouldBeOfType<InvalidOperationException>(); 

    private static Exception _exception; 
} 

ответ

10

В версии 0.7.0, Machine.Specifications не содержит утверждений больше (см Daniel Marbach's blog). Вы должны установить Machine.Specifications.Should (или другую библиотеку утверждений).

Кроме того, ShouldBeOfType() был заменен ShouldBeOfExactType() (или ShouldBeAssignableTo() соответственно), так что вы также должны изменить это в коде (см github issue.

+0

Спасибо за ответ :) – AllSpark

+0

этого нарушения изменения поймано много people – MattDavey

+0

Любая идея, почему утверждения теперь существуют в отдельной библиотеке? Является ли это гибкостью в отношении того, какую библиотеку утверждений использовать? –