How to make static methods testable? I am creating an application which will be testable(unit + integration). In this application I have a FileHelper static class,

public static class FileHelper
{
    public static void ExtractZipFile(Stream zipStream, string location)
    {
        ..................................
    } 
    public static void CreatePageFolderIfNotExist(string directory)
    {
        .................................................
    }

    .......................................................
    .......................................................
}


But due to static I think it is not testable. How to make this class testable?
If you want to write tests for this helper class only - they would be integration tests since they touch the file system. 

In order to make the code unit testable you need to make it independent from hardware and physical interaction with network or disk.

If you want to unit test the business logic that uses this FileHelper, then you should introduce Inversion of Control to separate business logic from file activities. You'll have to create an interface that describes all operations you can do with files, transform this static helper class into class implementing that interface, and reference file operations from business logic via interface only. Example of file helper:

public interface IFileOperations
{
    void ExtractZipFile(Stream zipStream, string location);
    void CreatePageFolderIfNotExist(string directory);
}

public class FileOperations : IFileOperations
{
    public void ExtractZipFile(Stream zipStream, string location)
    {
        ..................................
    } 

    public void CreatePageFolderIfNotExist(string directory)
    {
        .................................................
    }
}


Then, in order to properly cover you code with tests, you would need to write unit tests for business logic and add integration tests for the implementation of FileOperations.