Phi*_*ley 8 c# tfs moq tfs-2015
我有以下单元测试(一些重命名,但在其他方面完全相同)在本地运行良好,并按预期传递.
[TestClass, ExcludeFromCodeCoverage]
public class SearchControllerTests
{
private Mock<IRepository> _repository;
private Mock<ICrypter> _crypter;
private SearchController _controller;
[TestInitialize]
public void Initialize()
{
_repository = new Mock<IRepository>();
_crypter = new Mock<ICrypter>();
_controller = new SearchController(_repository.Object, _crypter.Object);
}
[TestMethod]
public void SearchViewSimple()
{
var result = _controller.Search() as PartialViewResult;
Assert.IsNotNull(result);
Assert.AreEqual("Search", result.ViewBag.Title);
}
}
Run Code Online (Sandbox Code Playgroud)
它也通过了TFS 2015.但是,我们正在升级到TFS 2015 Update 2,并且在该环境中测试失败并且具有相同的构建过程.在initialize方法中,此行抛出NullReferenceException.
_crypter = new Mock<ICrypter>();
Run Code Online (Sandbox Code Playgroud)
ICrypter是使用CryptSharp的SCrypt非常简单的包装器:
[assembly: Dependency(typeof(ICrypter), typeof(Crypter))]
namespace ProjectNameRemoved.Cryptography
{
public interface ICrypter
{
string GetHash(string value);
}
public class Crypter : ICrypter
{
public string GetHash(string value)
{
// Removed
}
}
}
Run Code Online (Sandbox Code Playgroud)
TFS 2015和2015 Update 2之间会有什么区别会导致这样的事情吗?或者可能是某种依赖问题,其中没有下载CryptSharp?外部连接在构建中很好,并且包似乎已更新而没有问题或警告.